diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index bf2effce6..b6147d52a 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -19313,6 +19313,23 @@ components: x-enum-varnames: - BARS - AREA + TimeseriesRequestStyle: + description: Define request widget style for timeseries widgets. + properties: + has_value_labels: + description: If true, the value is displayed as a label relative to the + data point. + type: boolean + line_type: + $ref: '#/components/schemas/WidgetLineType' + line_width: + $ref: '#/components/schemas/WidgetLineWidth' + order_by: + $ref: '#/components/schemas/WidgetStyleOrderBy' + palette: + description: Color palette to apply to the widget. + type: string + type: object TimeseriesWidgetDefinition: description: The timeseries visualization allows you to display the evolution of one or more metrics, log events, or Indexed Spans over time. @@ -19467,7 +19484,7 @@ components: security_query: $ref: '#/components/schemas/LogQueryDefinition' style: - $ref: '#/components/schemas/WidgetRequestStyle' + $ref: '#/components/schemas/TimeseriesRequestStyle' type: object ToplistWidgetDefinition: description: The top list visualization enables you to display a list of Tag diff --git a/examples/v1_dashboards_CreateDashboard_1259346254.rs b/examples/v1_dashboards_CreateDashboard_1259346254.rs index d3357ccc9..5a679ee08 100644 --- a/examples/v1_dashboards_CreateDashboard_1259346254.rs +++ b/examples/v1_dashboards_CreateDashboard_1259346254.rs @@ -3,13 +3,13 @@ use datadog_api_client::datadog; use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; use datadog_api_client::datadogV1::model::Widget; use datadog_api_client::datadogV1::model::WidgetDefinition; use datadog_api_client::datadogV1::model::WidgetDisplayType; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetStyleOrderBy; #[tokio::main] @@ -23,7 +23,7 @@ async fn main() { .display_type(WidgetDisplayType::LINE) .q("avg:system.cpu.user{*} by {host}".to_string()) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .order_by(WidgetStyleOrderBy::VALUES) .palette("warm".to_string()), )], diff --git a/examples/v1_dashboards_CreateDashboard_1284514532.rs b/examples/v1_dashboards_CreateDashboard_1284514532.rs index 5e78959cb..da6c908da 100644 --- a/examples/v1_dashboards_CreateDashboard_1284514532.rs +++ b/examples/v1_dashboards_CreateDashboard_1284514532.rs @@ -8,6 +8,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -19,7 +20,6 @@ use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetLiveSpan; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTextAlign; use datadog_api_client::datadogV1::model::WidgetTime; @@ -54,7 +54,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_1307120899.rs b/examples/v1_dashboards_CreateDashboard_1307120899.rs index 2721b558b..5b752cae2 100644 --- a/examples/v1_dashboards_CreateDashboard_1307120899.rs +++ b/examples/v1_dashboards_CreateDashboard_1307120899.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -23,7 +24,6 @@ use datadog_api_client::datadogV1::model::WidgetFormula; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -66,7 +66,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_1433408735.rs b/examples/v1_dashboards_CreateDashboard_1433408735.rs index 9f14c3ba2..7a3a8b203 100644 --- a/examples/v1_dashboards_CreateDashboard_1433408735.rs +++ b/examples/v1_dashboards_CreateDashboard_1433408735.rs @@ -7,6 +7,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -17,7 +18,6 @@ use datadog_api_client::datadogV1::model::WidgetFormula; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTextAlign; use datadog_api_client::datadogV1::model::WidgetTime; @@ -52,7 +52,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_1705253330.rs b/examples/v1_dashboards_CreateDashboard_1705253330.rs new file mode 100644 index 000000000..a1a98207e --- /dev/null +++ b/examples/v1_dashboards_CreateDashboard_1705253330.rs @@ -0,0 +1,45 @@ +// Create a new dashboard with timeseries widget using has_value_labels +use datadog_api_client::datadog; +use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; +use datadog_api_client::datadogV1::model::Dashboard; +use datadog_api_client::datadogV1::model::DashboardLayoutType; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; +use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; +use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; +use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; +use datadog_api_client::datadogV1::model::Widget; +use datadog_api_client::datadogV1::model::WidgetDefinition; +use datadog_api_client::datadogV1::model::WidgetDisplayType; +use datadog_api_client::datadogV1::model::WidgetLineType; +use datadog_api_client::datadogV1::model::WidgetLineWidth; + +#[tokio::main] +async fn main() { + let body = Dashboard::new( + DashboardLayoutType::ORDERED, + "Example-Dashboard with has_value_labels".to_string(), + vec![Widget::new(WidgetDefinition::TimeseriesWidgetDefinition( + Box::new(TimeseriesWidgetDefinition::new( + vec![TimeseriesWidgetRequest::new() + .display_type(WidgetDisplayType::LINE) + .q("avg:system.cpu.user{*} by {host}".to_string()) + .style( + TimeseriesRequestStyle::new() + .has_value_labels(true) + .line_type(WidgetLineType::SOLID) + .line_width(WidgetLineWidth::NORMAL) + .palette("dog_classic".to_string()), + )], + TimeseriesWidgetDefinitionType::TIMESERIES, + )), + ))], + ); + let configuration = datadog::Configuration::new(); + let api = DashboardsAPI::with_config(configuration); + let resp = api.create_dashboard(body).await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v1_dashboards_CreateDashboard_2261785072.rs b/examples/v1_dashboards_CreateDashboard_2261785072.rs index f4a2de895..3a055cba8 100644 --- a/examples/v1_dashboards_CreateDashboard_2261785072.rs +++ b/examples/v1_dashboards_CreateDashboard_2261785072.rs @@ -7,6 +7,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -15,7 +16,6 @@ use datadog_api_client::datadogV1::model::WidgetDefinition; use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; #[tokio::main] async fn main() { @@ -65,7 +65,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("purple".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_2278756614.rs b/examples/v1_dashboards_CreateDashboard_2278756614.rs index fbc10b069..002496f1b 100644 --- a/examples/v1_dashboards_CreateDashboard_2278756614.rs +++ b/examples/v1_dashboards_CreateDashboard_2278756614.rs @@ -16,6 +16,7 @@ use datadog_api_client::datadogV1::model::SplitGraphWidgetDefinition; use datadog_api_client::datadogV1::model::SplitGraphWidgetDefinitionType; use datadog_api_client::datadogV1::model::SplitSort; use datadog_api_client::datadogV1::model::SplitVectorEntryItem; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -25,7 +26,6 @@ use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLayout; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetSort; use datadog_api_client::datadogV1::model::WidgetTextAlign; @@ -63,7 +63,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_2800096921.rs b/examples/v1_dashboards_CreateDashboard_2800096921.rs index 046fa4e3e..38105469c 100644 --- a/examples/v1_dashboards_CreateDashboard_2800096921.rs +++ b/examples/v1_dashboards_CreateDashboard_2800096921.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -23,7 +24,6 @@ use datadog_api_client::datadogV1::model::WidgetFormula; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -66,7 +66,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_3066042014.rs b/examples/v1_dashboards_CreateDashboard_3066042014.rs index f11594b6e..7dac950f8 100644 --- a/examples/v1_dashboards_CreateDashboard_3066042014.rs +++ b/examples/v1_dashboards_CreateDashboard_3066042014.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -25,7 +26,6 @@ use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetLiveSpanUnit; use datadog_api_client::datadogV1::model::WidgetNewLiveSpan; use datadog_api_client::datadogV1::model::WidgetNewLiveSpanType; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -68,7 +68,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_3451918078.rs b/examples/v1_dashboards_CreateDashboard_3451918078.rs index 85b84c4f0..3320c468a 100644 --- a/examples/v1_dashboards_CreateDashboard_3451918078.rs +++ b/examples/v1_dashboards_CreateDashboard_3451918078.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -24,7 +25,6 @@ use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetNewFixedSpan; use datadog_api_client::datadogV1::model::WidgetNewFixedSpanType; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -67,7 +67,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_3631423980.rs b/examples/v1_dashboards_CreateDashboard_3631423980.rs index 7c9ad046d..8fa8d928a 100644 --- a/examples/v1_dashboards_CreateDashboard_3631423980.rs +++ b/examples/v1_dashboards_CreateDashboard_3631423980.rs @@ -4,6 +4,7 @@ use datadog_api_client::datadog; use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -12,7 +13,6 @@ use datadog_api_client::datadogV1::model::WidgetDefinition; use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; #[tokio::main] async fn main() { @@ -25,7 +25,7 @@ async fn main() { .display_type(WidgetDisplayType::LINE) .q("avg:system.cpu.user{*} by {host}".to_string()) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_3982498788.rs b/examples/v1_dashboards_CreateDashboard_3982498788.rs index caa426d2c..89f5f760f 100644 --- a/examples/v1_dashboards_CreateDashboard_3982498788.rs +++ b/examples/v1_dashboards_CreateDashboard_3982498788.rs @@ -3,6 +3,7 @@ use datadog_api_client::datadog; use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -11,7 +12,6 @@ use datadog_api_client::datadogV1::model::WidgetDefinition; use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; #[tokio::main] async fn main() { @@ -32,7 +32,7 @@ async fn main() { "sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()".to_string(), ) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("warm".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_41622531.rs b/examples/v1_dashboards_CreateDashboard_41622531.rs index a3cd4ea9d..27246fff8 100644 --- a/examples/v1_dashboards_CreateDashboard_41622531.rs +++ b/examples/v1_dashboards_CreateDashboard_41622531.rs @@ -8,6 +8,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -21,7 +22,6 @@ use datadog_api_client::datadogV1::model::WidgetFormulaStyle; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -65,7 +65,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_416487533.rs b/examples/v1_dashboards_CreateDashboard_416487533.rs index 7513d32b1..41acfb898 100644 --- a/examples/v1_dashboards_CreateDashboard_416487533.rs +++ b/examples/v1_dashboards_CreateDashboard_416487533.rs @@ -3,13 +3,13 @@ use datadog_api_client::datadog; use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI; use datadog_api_client::datadogV1::model::Dashboard; use datadog_api_client::datadogV1::model::DashboardLayoutType; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; use datadog_api_client::datadogV1::model::Widget; use datadog_api_client::datadogV1::model::WidgetDefinition; use datadog_api_client::datadogV1::model::WidgetDisplayType; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetStyleOrderBy; #[tokio::main] @@ -23,7 +23,7 @@ async fn main() { .display_type(WidgetDisplayType::LINE) .q("avg:system.cpu.user{*} by {host}".to_string()) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .order_by(WidgetStyleOrderBy::TAGS) .palette("dog_classic".to_string()), )], diff --git a/examples/v1_dashboards_CreateDashboard_4262729673.rs b/examples/v1_dashboards_CreateDashboard_4262729673.rs index bf0545cda..0b453d1cb 100644 --- a/examples/v1_dashboards_CreateDashboard_4262729673.rs +++ b/examples/v1_dashboards_CreateDashboard_4262729673.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -24,7 +25,6 @@ use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetLiveSpan; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -67,7 +67,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_607525069.rs b/examples/v1_dashboards_CreateDashboard_607525069.rs index 35321b30f..268090cd6 100644 --- a/examples/v1_dashboards_CreateDashboard_607525069.rs +++ b/examples/v1_dashboards_CreateDashboard_607525069.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -23,7 +24,6 @@ use datadog_api_client::datadogV1::model::WidgetFormula; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -66,7 +66,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_dashboards_CreateDashboard_985012506.rs b/examples/v1_dashboards_CreateDashboard_985012506.rs index a24fb2c0c..5c5d83f21 100644 --- a/examples/v1_dashboards_CreateDashboard_985012506.rs +++ b/examples/v1_dashboards_CreateDashboard_985012506.rs @@ -11,6 +11,7 @@ use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource; use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition; use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn; @@ -23,7 +24,6 @@ use datadog_api_client::datadogV1::model::WidgetFormula; use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; use datadog_api_client::datadogV1::model::WidgetTime; #[tokio::main] @@ -66,7 +66,7 @@ async fn main() { ) .response_format(FormulaAndFunctionResponseFormat::TIMESERIES) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_notebooks_CreateNotebook.rs b/examples/v1_notebooks_CreateNotebook.rs index 4a5f14f97..3411a0eda 100644 --- a/examples/v1_notebooks_CreateNotebook.rs +++ b/examples/v1_notebooks_CreateNotebook.rs @@ -17,6 +17,7 @@ use datadog_api_client::datadogV1::model::NotebookResourceType; use datadog_api_client::datadogV1::model::NotebookSplitBy; use datadog_api_client::datadogV1::model::NotebookStatus; use datadog_api_client::datadogV1::model::NotebookTimeseriesCellAttributes; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -25,7 +26,6 @@ use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetLiveSpan; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; #[tokio::main] async fn main() { @@ -57,7 +57,7 @@ y = 6; .display_type(WidgetDisplayType::LINE) .q("avg:system.load.1{*}".to_string()) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/examples/v1_notebooks_UpdateNotebook.rs b/examples/v1_notebooks_UpdateNotebook.rs index eb1175eae..9e13e83fa 100644 --- a/examples/v1_notebooks_UpdateNotebook.rs +++ b/examples/v1_notebooks_UpdateNotebook.rs @@ -18,6 +18,7 @@ use datadog_api_client::datadogV1::model::NotebookUpdateCell; use datadog_api_client::datadogV1::model::NotebookUpdateData; use datadog_api_client::datadogV1::model::NotebookUpdateDataAttributes; use datadog_api_client::datadogV1::model::NotebookUpdateRequest; +use datadog_api_client::datadogV1::model::TimeseriesRequestStyle; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition; use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType; use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest; @@ -26,7 +27,6 @@ use datadog_api_client::datadogV1::model::WidgetDisplayType; use datadog_api_client::datadogV1::model::WidgetLineType; use datadog_api_client::datadogV1::model::WidgetLineWidth; use datadog_api_client::datadogV1::model::WidgetLiveSpan; -use datadog_api_client::datadogV1::model::WidgetRequestStyle; #[tokio::main] async fn main() { @@ -65,7 +65,7 @@ y = 6; .display_type(WidgetDisplayType::LINE) .q("avg:system.load.1{*}".to_string()) .style( - WidgetRequestStyle::new() + TimeseriesRequestStyle::new() .line_type(WidgetLineType::SOLID) .line_width(WidgetLineWidth::NORMAL) .palette("dog_classic".to_string()), diff --git a/src/datadogV1/model/mod.rs b/src/datadogV1/model/mod.rs index 311929679..0137b0c3d 100644 --- a/src/datadogV1/model/mod.rs +++ b/src/datadogV1/model/mod.rs @@ -584,6 +584,8 @@ pub mod model_widget_display_type; pub use self::model_widget_display_type::WidgetDisplayType; pub mod model_timeseries_widget_expression_alias; pub use self::model_timeseries_widget_expression_alias::TimeseriesWidgetExpressionAlias; +pub mod model_timeseries_request_style; +pub use self::model_timeseries_request_style::TimeseriesRequestStyle; pub mod model_timeseries_widget_definition_type; pub use self::model_timeseries_widget_definition_type::TimeseriesWidgetDefinitionType; pub mod model_toplist_widget_definition; diff --git a/src/datadogV1/model/model_timeseries_request_style.rs b/src/datadogV1/model/model_timeseries_request_style.rs new file mode 100644 index 000000000..25898af07 --- /dev/null +++ b/src/datadogV1/model/model_timeseries_request_style.rs @@ -0,0 +1,206 @@ +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Define request widget style for timeseries widgets. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct TimeseriesRequestStyle { + /// If true, the value is displayed as a label relative to the data point. + #[serde(rename = "has_value_labels")] + pub has_value_labels: Option, + /// Type of lines displayed. + #[serde(rename = "line_type")] + pub line_type: Option, + /// Width of line displayed. + #[serde(rename = "line_width")] + pub line_width: Option, + /// How to order series in timeseries visualizations. + /// - `tags`: Order series alphabetically by tag name (default behavior) + /// - `values`: Order series by their current metric values (typically descending) + #[serde(rename = "order_by")] + pub order_by: Option, + /// Color palette to apply to the widget. + #[serde(rename = "palette")] + pub palette: Option, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl TimeseriesRequestStyle { + pub fn new() -> TimeseriesRequestStyle { + TimeseriesRequestStyle { + has_value_labels: None, + line_type: None, + line_width: None, + order_by: None, + palette: None, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn has_value_labels(mut self, value: bool) -> Self { + self.has_value_labels = Some(value); + self + } + + pub fn line_type(mut self, value: crate::datadogV1::model::WidgetLineType) -> Self { + self.line_type = Some(value); + self + } + + pub fn line_width(mut self, value: crate::datadogV1::model::WidgetLineWidth) -> Self { + self.line_width = Some(value); + self + } + + pub fn order_by(mut self, value: crate::datadogV1::model::WidgetStyleOrderBy) -> Self { + self.order_by = Some(value); + self + } + + pub fn palette(mut self, value: String) -> Self { + self.palette = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl Default for TimeseriesRequestStyle { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for TimeseriesRequestStyle { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct TimeseriesRequestStyleVisitor; + impl<'a> Visitor<'a> for TimeseriesRequestStyleVisitor { + type Value = TimeseriesRequestStyle; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut has_value_labels: Option = None; + let mut line_type: Option = None; + let mut line_width: Option = None; + let mut order_by: Option = None; + let mut palette: Option = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "has_value_labels" => { + if v.is_null() { + continue; + } + has_value_labels = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "line_type" => { + if v.is_null() { + continue; + } + line_type = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _line_type) = line_type { + match _line_type { + crate::datadogV1::model::WidgetLineType::UnparsedObject( + _line_type, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "line_width" => { + if v.is_null() { + continue; + } + line_width = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _line_width) = line_width { + match _line_width { + crate::datadogV1::model::WidgetLineWidth::UnparsedObject( + _line_width, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "order_by" => { + if v.is_null() { + continue; + } + order_by = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _order_by) = order_by { + match _order_by { + crate::datadogV1::model::WidgetStyleOrderBy::UnparsedObject( + _order_by, + ) => { + _unparsed = true; + } + _ => {} + } + } + } + "palette" => { + if v.is_null() { + continue; + } + palette = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + + let content = TimeseriesRequestStyle { + has_value_labels, + line_type, + line_width, + order_by, + palette, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(TimeseriesRequestStyleVisitor) + } +} diff --git a/src/datadogV1/model/model_timeseries_widget_request.rs b/src/datadogV1/model/model_timeseries_widget_request.rs index 757ddfd4d..934eb1b02 100644 --- a/src/datadogV1/model/model_timeseries_widget_request.rs +++ b/src/datadogV1/model/model_timeseries_widget_request.rs @@ -59,9 +59,9 @@ pub struct TimeseriesWidgetRequest { /// The log query. #[serde(rename = "security_query")] pub security_query: Option, - /// Define request widget style. + /// Define request widget style for timeseries widgets. #[serde(rename = "style")] - pub style: Option, + pub style: Option, #[serde(flatten)] pub additional_properties: std::collections::BTreeMap, #[serde(skip)] @@ -186,7 +186,7 @@ impl TimeseriesWidgetRequest { self } - pub fn style(mut self, value: crate::datadogV1::model::WidgetRequestStyle) -> Self { + pub fn style(mut self, value: crate::datadogV1::model::TimeseriesRequestStyle) -> Self { self.style = Some(value); self } @@ -247,7 +247,7 @@ impl<'de> Deserialize<'de> for TimeseriesWidgetRequest { > = None; let mut rum_query: Option = None; let mut security_query: Option = None; - let mut style: Option = None; + let mut style: Option = None; let mut additional_properties: std::collections::BTreeMap< String, serde_json::Value, diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.frozen b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.frozen new file mode 100644 index 000000000..5065c0390 --- /dev/null +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.frozen @@ -0,0 +1 @@ +2026-03-02T17:38:31.339Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.json b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.json new file mode 100644 index 000000000..e31298b43 --- /dev/null +++ b/tests/scenarios/cassettes/v1/dashboards/Create-a-new-dashboard-with-timeseries-widget-using-has-value-labels.json @@ -0,0 +1,67 @@ +{ + "http_interactions": [ + { + "request": { + "body": { + "string": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_using_has_value_labels-1772473111 with has_value_labels\",\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.cpu.user{*} by {host}\",\"style\":{\"has_value_labels\":true,\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"type\":\"timeseries\"}}]}", + "encoding": null + }, + "headers": { + "Accept": [ + "application/json" + ], + "Content-Type": [ + "application/json" + ] + }, + "method": "post", + "uri": "https://api.datadoghq.com/api/v1/dashboard" + }, + "response": { + "body": { + "string": "{\"id\":\"ue9-kuc-ix2\",\"title\":\"Test-Create_a_new_dashboard_with_timeseries_widget_using_has_value_labels-1772473111 with has_value_labels\",\"description\":null,\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/ue9-kuc-ix2/test-createanewdashboardwithtimeserieswidgetusinghasvaluelabels-1772473111-with\",\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"display_type\":\"line\",\"q\":\"avg:system.cpu.user{*} by {host}\",\"style\":{\"has_value_labels\":true,\"line_type\":\"solid\",\"line_width\":\"normal\",\"palette\":\"dog_classic\"}}],\"type\":\"timeseries\"},\"id\":3800027122356131}],\"notify_list\":null,\"created_at\":\"2026-03-02T17:38:31.488630+00:00\",\"modified_at\":\"2026-03-02T17:38:31.488630+00:00\",\"restricted_roles\":[]}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 02 Mar 2026 17:38:31 GMT" + }, + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "delete", + "uri": "https://api.datadoghq.com/api/v1/dashboard/ue9-kuc-ix2" + }, + "response": { + "body": { + "string": "{\"deleted_dashboard_id\":\"ue9-kuc-ix2\"}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Mon, 02 Mar 2026 17:38:31 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.frozen b/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.frozen index 957e037f2..62723cd8d 100644 --- a/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.frozen +++ b/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.frozen @@ -1 +1 @@ -2026-02-18T16:57:05.121Z \ No newline at end of file +2026-01-07T12:38:45.716Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.json b/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.json index 5ca68869f..d3ec9a345 100644 --- a/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.json +++ b/tests/scenarios/cassettes/v2/synthetics/Create-a-test-suite-returns-OK-response.json @@ -19,7 +19,7 @@ }, "response": { "body": { - "string": "{\"data\":{\"type\":\"suites\",\"attributes\":{\"type\":\"suite\",\"monitor_id\":259845717,\"name\":\"Example suite name\",\"options\":{},\"tests\":[],\"tags\":[\"env:production\"],\"public_id\":\"hik-xp5-9q6\",\"created_at\":\"2026-02-18T16:57:05.583051+00:00\",\"modified_at\":\"2026-02-18T16:57:05.583051+00:00\",\"created_by\":{\"name\":\"Corentin Girard\",\"email\":\"corentin.girard@datadoghq.com\",\"handle\":\"corentin.girard@datadoghq.com\"},\"message\":\"Notification message\",\"org_id\":321813,\"modified_by\":{\"name\":\"Corentin Girard\",\"email\":\"corentin.girard@datadoghq.com\",\"handle\":\"corentin.girard@datadoghq.com\"}},\"id\":\"hik-xp5-9q6\"}}\n", + "string": "{\"data\":{\"type\":\"suites\",\"id\":\"36n-bb6-njj\",\"attributes\":{\"tags\":[\"env:production\"],\"type\":\"suite\",\"created_by\":{\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"created_at\":\"2026-01-07T12:38:46.109472+00:00\",\"modified_at\":\"2026-01-07T12:38:46.109472+00:00\",\"message\":\"Notification message\",\"public_id\":\"36n-bb6-njj\",\"options\":{},\"modified_by\":{\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"tests\":[],\"name\":\"Example suite name\",\"org_id\":321813,\"monitor_id\":249141773}}}\n", "encoding": null }, "headers": { @@ -32,12 +32,12 @@ "message": "OK" } }, - "recorded_at": "Wed, 18 Feb 2026 16:57:05 GMT" + "recorded_at": "Wed, 07 Jan 2026 12:38:45 GMT" }, { "request": { "body": { - "string": "{\"data\":{\"attributes\":{\"public_ids\":[\"hik-xp5-9q6\"]},\"type\":\"delete_suites_request\"}}", + "string": "{\"data\":{\"attributes\":{\"public_ids\":[\"36n-bb6-njj\"]},\"type\":\"delete_suites_request\"}}", "encoding": null }, "headers": { @@ -53,7 +53,7 @@ }, "response": { "body": { - "string": "{\"data\":[{\"type\":\"suites\",\"attributes\":{\"deleted_at\":\"2026-02-18 16:57:06.420679\",\"public_id\":\"hik-xp5-9q6\"},\"id\":\"hik-xp5-9q6\"}]}\n", + "string": "{\"data\":[{\"type\":\"suites\",\"attributes\":{\"public_id\":\"36n-bb6-njj\",\"deleted_at\":\"2026-01-07 12:38:46.679914\"},\"id\":\"36n-bb6-njj\"}]}\n", "encoding": null }, "headers": { @@ -66,7 +66,7 @@ "message": "OK" } }, - "recorded_at": "Wed, 18 Feb 2026 16:57:05 GMT" + "recorded_at": "Wed, 07 Jan 2026 12:38:45 GMT" } ], "recorded_with": "VCR 6.0.0" diff --git a/tests/scenarios/features/v1/dashboards.feature b/tests/scenarios/features/v1/dashboards.feature index 349f7de6f..c062a0dbe 100644 --- a/tests/scenarios/features/v1/dashboards.feature +++ b/tests/scenarios/features/v1/dashboards.feature @@ -946,6 +946,17 @@ Feature: Dashboards And the response "widgets[0].definition.requests[0].display_type" is equal to "bars" And the response "widgets[0].definition.requests[0].q" is equal to "sum:trace.test.errors{env:prod,service:datadog-api-spec} by {resource_name}.as_count()" + @team:DataDog/dashboards-backend + Scenario: Create a new dashboard with timeseries widget using has_value_labels + Given new "CreateDashboard" request + And body with value {"layout_type": "ordered", "title": "{{ unique }} with has_value_labels","widgets": [{"definition": {"type": "timeseries","requests": [{"q": "avg:system.cpu.user{*} by {host}","style": {"palette": "dog_classic","line_type": "solid","line_width": "normal","has_value_labels": true},"display_type": "line"}]}}]} + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.requests[0].style.has_value_labels" is equal to true + And the response "widgets[0].definition.requests[0].style.palette" is equal to "dog_classic" + And the response "widgets[0].definition.requests[0].style.line_type" is equal to "solid" + And the response "widgets[0].definition.requests[0].style.line_width" is equal to "normal" + @team:DataDog/dashboards-backend Scenario: Create a new dashboard with timeseries widget using order_by tags Given new "CreateDashboard" request