diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index fade3e94202..3ec349c633e 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -4602,6 +4602,402 @@ components: format: int64 type: integer type: object + HeatgridColor: + description: A color string, or two color strings for the light and dark themes, in that order. + example: "#FF0000" + oneOf: + - type: string + - $ref: "#/components/schemas/HeatgridThemeColors" + HeatgridColorBin: + additionalProperties: false + description: A color and optional lower threshold for a discrete bin. + properties: + color: + $ref: "#/components/schemas/HeatgridColor" + lower_bound: + description: Inclusive lower bound. Omit for the first bin. + format: double + type: number + required: + - color + type: object + HeatgridColorConfig: + description: Color configuration for continuous gradients or discrete thresholds. + oneOf: + - $ref: "#/components/schemas/HeatgridGradientCustomColor" + - $ref: "#/components/schemas/HeatgridGradientPresetColor" + - $ref: "#/components/schemas/HeatgridDiscreteCustomColor" + - $ref: "#/components/schemas/HeatgridDiscretePresetColor" + HeatgridColorStop: + additionalProperties: false + description: A position and color in a continuous gradient. + properties: + color: + $ref: "#/components/schemas/HeatgridColor" + position: + description: Position in the gradient, from 0 to 100. + example: 100 + format: int64 + maximum: 100 + minimum: 0 + type: integer + required: + - position + - color + type: object + HeatgridCustomColorSource: + description: Use custom colors. + enum: + - custom + example: custom + type: string + x-enum-varnames: + - CUSTOM + HeatgridDiscreteCustomColor: + additionalProperties: false + description: Discrete thresholds with custom colors. + properties: + bins: + description: |- + Two to six bins. Omit `lower_bound` on the first bin. Subsequent lower bounds must be in + ascending order. + items: + $ref: "#/components/schemas/HeatgridColorBin" + maxItems: 6 + minItems: 2 + type: array + mode: + $ref: "#/components/schemas/HeatgridDiscreteMode" + source: + $ref: "#/components/schemas/HeatgridCustomColorSource" + required: + - mode + - source + - bins + type: object + HeatgridDiscreteMode: + description: Use discrete color thresholds. + enum: + - discrete + example: discrete + type: string + x-enum-varnames: + - DISCRETE + HeatgridDiscretePresetColor: + additionalProperties: false + description: A preset discrete color palette. + properties: + mode: + $ref: "#/components/schemas/HeatgridDiscreteMode" + preset_name: + description: Name of the preset color palette. + example: "classic" + type: string + source: + $ref: "#/components/schemas/HeatgridPresetColorSource" + required: + - mode + - source + - preset_name + type: object + HeatgridGradientCustomColor: + additionalProperties: false + description: A continuous gradient with custom color stops. + properties: + mode: + $ref: "#/components/schemas/HeatgridGradientMode" + source: + $ref: "#/components/schemas/HeatgridCustomColorSource" + stops: + description: Two to six stops with positions in ascending order. + items: + $ref: "#/components/schemas/HeatgridColorStop" + maxItems: 6 + minItems: 2 + type: array + required: + - mode + - source + - stops + type: object + HeatgridGradientMode: + description: Use a continuous color gradient. + enum: + - gradient + example: gradient + type: string + x-enum-varnames: + - GRADIENT + HeatgridGradientPresetColor: + additionalProperties: false + description: A preset gradient color palette. + properties: + mode: + $ref: "#/components/schemas/HeatgridGradientMode" + preset_name: + description: Name of the preset color palette. + example: "classic" + type: string + source: + $ref: "#/components/schemas/HeatgridPresetColorSource" + required: + - mode + - source + - preset_name + type: object + HeatgridLabelColumn: + additionalProperties: false + description: Configuration of the group label column. + properties: + width: + $ref: "#/components/schemas/HeatgridLabelColumnWidth" + required: + - width + type: object + HeatgridLabelColumnWidth: + description: Width of the label column. + enum: + - xs + - s + - m + - l + - xl + example: xs + type: string + x-enum-varnames: + - XS + - S + - M + - L + - XL + HeatgridLegend: + additionalProperties: false + description: Legend configuration for the heatgrid widget. + properties: + show_caption: + description: Whether to display the legend caption. + type: boolean + type: object + HeatgridNestingDisplay: + description: Display groups as flat rows. + enum: + - flat + example: flat + type: string + x-enum-varnames: + - FLAT + HeatgridPresetColorSource: + description: Use a preset color palette. + enum: + - preset + example: preset + type: string + x-enum-varnames: + - PRESET + HeatgridSort: + additionalProperties: false + description: Ordering of the heatgrid rows. + properties: + nesting_display: + $ref: "#/components/schemas/HeatgridNestingDisplay" + sort_by: + $ref: "#/components/schemas/HeatgridSortBy" + required: + - nesting_display + - sort_by + type: object + HeatgridSortAggregation: + description: Aggregation used to order rows over the displayed time range. + enum: + - avg + - min + - max + - sum + example: avg + type: string + x-enum-varnames: + - AVG + - MIN + - MAX + - SUM + HeatgridSortBy: + description: Sort rows by aggregated value or group label. + oneOf: + - $ref: "#/components/schemas/HeatgridSortByValue" + - $ref: "#/components/schemas/HeatgridSortByLabel" + HeatgridSortByLabel: + additionalProperties: false + description: Sort rows by their group labels. + properties: + order: + $ref: "#/components/schemas/HeatgridSortOrder" + property: + $ref: "#/components/schemas/HeatgridSortByLabelProperty" + required: + - property + - order + type: object + HeatgridSortByLabelProperty: + description: Sort by label. + enum: + - label + example: label + type: string + x-enum-varnames: + - LABEL + HeatgridSortByValue: + additionalProperties: false + description: Sort rows by their aggregated values. + properties: + aggregation: + $ref: "#/components/schemas/HeatgridSortAggregation" + order: + $ref: "#/components/schemas/HeatgridSortOrder" + property: + $ref: "#/components/schemas/HeatgridSortByValueProperty" + required: + - property + - order + - aggregation + type: object + HeatgridSortByValueProperty: + description: Sort by value. + enum: + - value + example: value + type: string + x-enum-varnames: + - VALUE + HeatgridSortOrder: + description: Sort direction. + enum: + - asc + - desc + example: asc + type: string + x-enum-varnames: + - ASC + - DESC + HeatgridThemeColors: + description: Two color strings for the light and dark themes, in that order. + example: ["#FFFFFF", "#000000"] + items: + description: Color for the light or dark theme. + type: string + maxItems: 2 + minItems: 2 + type: array + HeatgridWidgetDefinition: + additionalProperties: false + description: The heatgrid visualization displays values for each group over time using color. + properties: + color: + $ref: "#/components/schemas/HeatgridColorConfig" + custom_links: + description: List of custom links. + items: + $ref: "#/components/schemas/WidgetCustomLink" + type: array + description: + description: Description of the widget. + type: string + label_column: + $ref: "#/components/schemas/HeatgridLabelColumn" + legend: + $ref: "#/components/schemas/HeatgridLegend" + requests: + description: Widget requests. The widget displays one formula, which can combine multiple queries. + items: + $ref: "#/components/schemas/HeatgridWidgetRequest" + minItems: 1 + type: array + sort: + $ref: "#/components/schemas/HeatgridSort" + time: + $ref: "#/components/schemas/WidgetTime" + title: + description: Title of the widget. + type: string + title_align: + $ref: "#/components/schemas/WidgetTextAlign" + title_size: + description: Size of the title. + type: string + type: + $ref: "#/components/schemas/HeatgridWidgetDefinitionType" + required: + - type + - requests + - sort + type: object + HeatgridWidgetDefinitionType: + default: heatgrid + description: Type of the heatgrid widget. + enum: + - heatgrid + example: heatgrid + type: string + x-enum-varnames: + - HEATGRID + HeatgridWidgetFormula: + additionalProperties: false + description: A formula for a heatgrid widget request. + properties: + alias: + description: Expression alias. + type: string + conditional_formats: + description: |- + Conditional formatting rules. These rules do not affect heatgrid rendering. + Use the widget-level `color` configuration to control cell colors. + items: + $ref: "#/components/schemas/WidgetConditionalFormat" + type: array + formula: + description: String expression built from queries, formulas, and functions. + example: "query1" + type: string + limit: + $ref: "#/components/schemas/WidgetFormulaLimit" + number_format: + $ref: "#/components/schemas/WidgetNumberFormat" + style: + $ref: "#/components/schemas/WidgetFormulaStyle" + required: + - formula + type: object + HeatgridWidgetRequest: + additionalProperties: false + description: A request for a heatgrid widget that uses formulas and functions. + properties: + formulas: + description: The single displayed formula can combine multiple queries. + items: + $ref: "#/components/schemas/HeatgridWidgetFormula" + type: array + queries: + description: Queries returned directly or combined in a formula. + example: + - data_source: "metrics" + name: "my_query" + query: "avg:system.cpu.user{*}" + items: + $ref: "#/components/schemas/FormulaAndFunctionQueryDefinition" + type: array + response_format: + $ref: "#/components/schemas/HeatgridWidgetResponseFormat" + required: + - response_format + - queries + type: object + HeatgridWidgetResponseFormat: + description: Response format for heatgrid queries. + enum: + - timeseries + example: timeseries + type: string + x-enum-varnames: + - TIMESERIES Host: description: Object representing a host. properties: @@ -28261,6 +28657,7 @@ components: - $ref: "#/components/schemas/ProductAnalyticsFunnelWidgetDefinition" - $ref: "#/components/schemas/GeomapWidgetDefinition" - $ref: "#/components/schemas/GroupWidgetDefinition" + - $ref: "#/components/schemas/HeatgridWidgetDefinition" - $ref: "#/components/schemas/HeatMapWidgetDefinition" - $ref: "#/components/schemas/HostMapWidgetDefinition" - $ref: "#/components/schemas/IFrameWidgetDefinition" diff --git a/examples/v1/dashboards/CreateDashboard_1322784076.java b/examples/v1/dashboards/CreateDashboard_1322784076.java new file mode 100644 index 00000000000..5409acc9b82 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_1322784076.java @@ -0,0 +1,109 @@ +// Create a heatgrid widget with custom discrete thresholds + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v1.api.DashboardsApi; +import com.datadog.api.client.v1.model.Dashboard; +import com.datadog.api.client.v1.model.DashboardLayoutType; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricDataSource; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricQueryDefinition; +import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition; +import com.datadog.api.client.v1.model.HeatgridColor; +import com.datadog.api.client.v1.model.HeatgridColorBin; +import com.datadog.api.client.v1.model.HeatgridColorConfig; +import com.datadog.api.client.v1.model.HeatgridCustomColorSource; +import com.datadog.api.client.v1.model.HeatgridDiscreteCustomColor; +import com.datadog.api.client.v1.model.HeatgridDiscreteMode; +import com.datadog.api.client.v1.model.HeatgridLabelColumn; +import com.datadog.api.client.v1.model.HeatgridLabelColumnWidth; +import com.datadog.api.client.v1.model.HeatgridLegend; +import com.datadog.api.client.v1.model.HeatgridNestingDisplay; +import com.datadog.api.client.v1.model.HeatgridSort; +import com.datadog.api.client.v1.model.HeatgridSortBy; +import com.datadog.api.client.v1.model.HeatgridSortByLabel; +import com.datadog.api.client.v1.model.HeatgridSortByLabelProperty; +import com.datadog.api.client.v1.model.HeatgridSortOrder; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinition; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinitionType; +import com.datadog.api.client.v1.model.HeatgridWidgetFormula; +import com.datadog.api.client.v1.model.HeatgridWidgetRequest; +import com.datadog.api.client.v1.model.HeatgridWidgetResponseFormat; +import com.datadog.api.client.v1.model.Widget; +import com.datadog.api.client.v1.model.WidgetDefinition; +import java.util.Arrays; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); + DashboardsApi apiInstance = new DashboardsApi(defaultClient); + + Dashboard body = + new Dashboard() + .title("Example-Dashboard") + .layoutType(DashboardLayoutType.ORDERED) + .widgets( + Collections.singletonList( + new Widget() + .definition( + new WidgetDefinition( + new HeatgridWidgetDefinition() + .type(HeatgridWidgetDefinitionType.HEATGRID) + .requests( + Collections.singletonList( + new HeatgridWidgetRequest() + .responseFormat( + HeatgridWidgetResponseFormat.TIMESERIES) + .queries( + Collections.singletonList( + new FormulaAndFunctionQueryDefinition( + new FormulaAndFunctionMetricQueryDefinition() + .dataSource( + FormulaAndFunctionMetricDataSource + .METRICS) + .name("query1") + .query( + "avg:system.cpu.user{*} by" + + " {host}")))) + .formulas( + Collections.singletonList( + new HeatgridWidgetFormula() + .formula("query1"))))) + .sort( + new HeatgridSort() + .nestingDisplay(HeatgridNestingDisplay.FLAT) + .sortBy( + new HeatgridSortBy( + new HeatgridSortByLabel() + .property(HeatgridSortByLabelProperty.LABEL) + .order(HeatgridSortOrder.ASC)))) + .color( + new HeatgridColorConfig( + new HeatgridDiscreteCustomColor() + .mode(HeatgridDiscreteMode.DISCRETE) + .source(HeatgridCustomColorSource.CUSTOM) + .bins( + Arrays.asList( + new HeatgridColorBin() + .color(new HeatgridColor("#00FF00")), + new HeatgridColorBin() + .color(new HeatgridColor("#FF0000")) + .lowerBound(80.0))))) + .legend(new HeatgridLegend().showCaption(true)) + .labelColumn( + new HeatgridLabelColumn() + .width(HeatgridLabelColumnWidth.M)))))); + + try { + Dashboard result = apiInstance.createDashboard(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardsApi#createDashboard"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v1/dashboards/CreateDashboard_1681529203.java b/examples/v1/dashboards/CreateDashboard_1681529203.java new file mode 100644 index 00000000000..955c23dda10 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_1681529203.java @@ -0,0 +1,115 @@ +// Create a heatgrid widget with custom gradient colors for both themes + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v1.api.DashboardsApi; +import com.datadog.api.client.v1.model.Dashboard; +import com.datadog.api.client.v1.model.DashboardLayoutType; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricDataSource; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricQueryDefinition; +import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition; +import com.datadog.api.client.v1.model.HeatgridColor; +import com.datadog.api.client.v1.model.HeatgridColorConfig; +import com.datadog.api.client.v1.model.HeatgridColorStop; +import com.datadog.api.client.v1.model.HeatgridCustomColorSource; +import com.datadog.api.client.v1.model.HeatgridGradientCustomColor; +import com.datadog.api.client.v1.model.HeatgridGradientMode; +import com.datadog.api.client.v1.model.HeatgridLabelColumn; +import com.datadog.api.client.v1.model.HeatgridLabelColumnWidth; +import com.datadog.api.client.v1.model.HeatgridLegend; +import com.datadog.api.client.v1.model.HeatgridNestingDisplay; +import com.datadog.api.client.v1.model.HeatgridSort; +import com.datadog.api.client.v1.model.HeatgridSortAggregation; +import com.datadog.api.client.v1.model.HeatgridSortBy; +import com.datadog.api.client.v1.model.HeatgridSortByValue; +import com.datadog.api.client.v1.model.HeatgridSortByValueProperty; +import com.datadog.api.client.v1.model.HeatgridSortOrder; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinition; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinitionType; +import com.datadog.api.client.v1.model.HeatgridWidgetFormula; +import com.datadog.api.client.v1.model.HeatgridWidgetRequest; +import com.datadog.api.client.v1.model.HeatgridWidgetResponseFormat; +import com.datadog.api.client.v1.model.Widget; +import com.datadog.api.client.v1.model.WidgetDefinition; +import java.util.Arrays; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); + DashboardsApi apiInstance = new DashboardsApi(defaultClient); + + Dashboard body = + new Dashboard() + .title("Example-Dashboard") + .layoutType(DashboardLayoutType.ORDERED) + .widgets( + Collections.singletonList( + new Widget() + .definition( + new WidgetDefinition( + new HeatgridWidgetDefinition() + .type(HeatgridWidgetDefinitionType.HEATGRID) + .requests( + Collections.singletonList( + new HeatgridWidgetRequest() + .responseFormat( + HeatgridWidgetResponseFormat.TIMESERIES) + .queries( + Collections.singletonList( + new FormulaAndFunctionQueryDefinition( + new FormulaAndFunctionMetricQueryDefinition() + .dataSource( + FormulaAndFunctionMetricDataSource + .METRICS) + .name("query1") + .query( + "avg:system.cpu.user{*} by" + + " {host}")))) + .formulas( + Collections.singletonList( + new HeatgridWidgetFormula() + .formula("query1"))))) + .sort( + new HeatgridSort() + .nestingDisplay(HeatgridNestingDisplay.FLAT) + .sortBy( + new HeatgridSortBy( + new HeatgridSortByValue() + .property(HeatgridSortByValueProperty.VALUE) + .order(HeatgridSortOrder.DESC) + .aggregation(HeatgridSortAggregation.AVG)))) + .color( + new HeatgridColorConfig( + new HeatgridGradientCustomColor() + .mode(HeatgridGradientMode.GRADIENT) + .source(HeatgridCustomColorSource.CUSTOM) + .stops( + Arrays.asList( + new HeatgridColorStop() + .position(0L) + .color( + new HeatgridColor( + Arrays.asList( + "#FFFFFF", "#000000"))), + new HeatgridColorStop() + .position(100L) + .color(new HeatgridColor("#FF0000")))))) + .legend(new HeatgridLegend().showCaption(true)) + .labelColumn( + new HeatgridLabelColumn() + .width(HeatgridLabelColumnWidth.M)))))); + + try { + Dashboard result = apiInstance.createDashboard(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardsApi#createDashboard"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v1/dashboards/CreateDashboard_2574782816.java b/examples/v1/dashboards/CreateDashboard_2574782816.java new file mode 100644 index 00000000000..06f6cebe020 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_2574782816.java @@ -0,0 +1,102 @@ +// Create a heatgrid widget with a preset gradient + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v1.api.DashboardsApi; +import com.datadog.api.client.v1.model.Dashboard; +import com.datadog.api.client.v1.model.DashboardLayoutType; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricDataSource; +import com.datadog.api.client.v1.model.FormulaAndFunctionMetricQueryDefinition; +import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition; +import com.datadog.api.client.v1.model.HeatgridColorConfig; +import com.datadog.api.client.v1.model.HeatgridGradientMode; +import com.datadog.api.client.v1.model.HeatgridGradientPresetColor; +import com.datadog.api.client.v1.model.HeatgridLabelColumn; +import com.datadog.api.client.v1.model.HeatgridLabelColumnWidth; +import com.datadog.api.client.v1.model.HeatgridLegend; +import com.datadog.api.client.v1.model.HeatgridNestingDisplay; +import com.datadog.api.client.v1.model.HeatgridPresetColorSource; +import com.datadog.api.client.v1.model.HeatgridSort; +import com.datadog.api.client.v1.model.HeatgridSortAggregation; +import com.datadog.api.client.v1.model.HeatgridSortBy; +import com.datadog.api.client.v1.model.HeatgridSortByValue; +import com.datadog.api.client.v1.model.HeatgridSortByValueProperty; +import com.datadog.api.client.v1.model.HeatgridSortOrder; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinition; +import com.datadog.api.client.v1.model.HeatgridWidgetDefinitionType; +import com.datadog.api.client.v1.model.HeatgridWidgetFormula; +import com.datadog.api.client.v1.model.HeatgridWidgetRequest; +import com.datadog.api.client.v1.model.HeatgridWidgetResponseFormat; +import com.datadog.api.client.v1.model.Widget; +import com.datadog.api.client.v1.model.WidgetDefinition; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN")); + DashboardsApi apiInstance = new DashboardsApi(defaultClient); + + Dashboard body = + new Dashboard() + .title("Example-Dashboard") + .layoutType(DashboardLayoutType.ORDERED) + .widgets( + Collections.singletonList( + new Widget() + .definition( + new WidgetDefinition( + new HeatgridWidgetDefinition() + .type(HeatgridWidgetDefinitionType.HEATGRID) + .requests( + Collections.singletonList( + new HeatgridWidgetRequest() + .responseFormat( + HeatgridWidgetResponseFormat.TIMESERIES) + .queries( + Collections.singletonList( + new FormulaAndFunctionQueryDefinition( + new FormulaAndFunctionMetricQueryDefinition() + .dataSource( + FormulaAndFunctionMetricDataSource + .METRICS) + .name("query1") + .query( + "avg:system.cpu.user{*} by" + + " {host}")))) + .formulas( + Collections.singletonList( + new HeatgridWidgetFormula() + .formula("query1"))))) + .sort( + new HeatgridSort() + .nestingDisplay(HeatgridNestingDisplay.FLAT) + .sortBy( + new HeatgridSortBy( + new HeatgridSortByValue() + .property(HeatgridSortByValueProperty.VALUE) + .order(HeatgridSortOrder.DESC) + .aggregation(HeatgridSortAggregation.AVG)))) + .color( + new HeatgridColorConfig( + new HeatgridGradientPresetColor() + .mode(HeatgridGradientMode.GRADIENT) + .source(HeatgridPresetColorSource.PRESET) + .presetName("classic"))) + .legend(new HeatgridLegend().showCaption(true)) + .labelColumn( + new HeatgridLabelColumn() + .width(HeatgridLabelColumnWidth.M)))))); + + try { + Dashboard result = apiInstance.createDashboard(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DashboardsApi#createDashboard"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridColor.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridColor.java new file mode 100644 index 00000000000..ed03b0964c5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridColor.java @@ -0,0 +1,267 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = HeatgridColor.HeatgridColorDeserializer.class) +@JsonSerialize(using = HeatgridColor.HeatgridColorSerializer.class) +public class HeatgridColor extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(HeatgridColor.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class HeatgridColorSerializer extends StdSerializer { + public HeatgridColorSerializer(Class t) { + super(t); + } + + public HeatgridColorSerializer() { + this(null); + } + + @Override + public void serialize(HeatgridColor value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class HeatgridColorDeserializer extends StdDeserializer { + public HeatgridColorDeserializer() { + this(HeatgridColor.class); + } + + public HeatgridColorDeserializer(Class vc) { + super(vc); + } + + @Override + public HeatgridColor deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize String + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (String.class.equals(Integer.class) + || String.class.equals(Long.class) + || String.class.equals(Float.class) + || String.class.equals(Double.class) + || String.class.equals(Boolean.class) + || String.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((String.class.equals(Integer.class) || String.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((String.class.equals(Float.class) || String.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (String.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (String.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(String.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'String'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'String'", e); + } + + // deserialize List + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (List.class.equals(Integer.class) + || List.class.equals(Long.class) + || List.class.equals(Float.class) + || List.class.equals(Double.class) + || List.class.equals(Boolean.class) + || List.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((List.class.equals(Integer.class) || List.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((List.class.equals(Float.class) || List.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (List.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= (List.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(new TypeReference>() {}); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'List'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'List'", e); + } + + HeatgridColor ret = new HeatgridColor(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public HeatgridColor getNullValue(DeserializationContext ctxt) throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "HeatgridColor cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public HeatgridColor() { + super("oneOf", Boolean.FALSE); + } + + public HeatgridColor(String o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public HeatgridColor(List o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("String", new GenericType() {}); + schemas.put("List", new GenericType>() {}); + JSON.registerDescendants(HeatgridColor.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return HeatgridColor.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: String, List<String> + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(String.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(List.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException("Invalid instance type. Must be String, List"); + } + + /** + * Get the actual instance, which can be the following: String, List<String> + * + * @return The actual instance (String, List<String>) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `String`. If the actual instance is not `String`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `String` + * @throws ClassCastException if the instance is not `String` + */ + public String getString() throws ClassCastException { + return (String) super.getActualInstance(); + } + + /** + * Get the actual instance of `List<String>`. If the actual instance is not + * `List<String>`, the ClassCastException will be thrown. + * + * @return The actual instance of `List<String>` + * @throws ClassCastException if the instance is not `List<String>` + */ + public List getList() throws ClassCastException { + return (List) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridColorBin.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorBin.java new file mode 100644 index 00000000000..a1740d0d1ff --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorBin.java @@ -0,0 +1,123 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** A color and optional lower threshold for a discrete bin. */ +@JsonPropertyOrder({ + HeatgridColorBin.JSON_PROPERTY_COLOR, + HeatgridColorBin.JSON_PROPERTY_LOWER_BOUND +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridColorBin { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COLOR = "color"; + private HeatgridColor color; + + public static final String JSON_PROPERTY_LOWER_BOUND = "lower_bound"; + private Double lowerBound; + + public HeatgridColorBin() {} + + @JsonCreator + public HeatgridColorBin( + @JsonProperty(required = true, value = JSON_PROPERTY_COLOR) HeatgridColor color) { + this.color = color; + this.unparsed |= color.unparsed; + } + + public HeatgridColorBin color(HeatgridColor color) { + this.color = color; + this.unparsed |= color.unparsed; + return this; + } + + /** + * A color string, or two color strings for the light and dark themes, in that order. + * + * @return color + */ + @JsonProperty(JSON_PROPERTY_COLOR) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridColor getColor() { + return color; + } + + public void setColor(HeatgridColor color) { + this.color = color; + if (color != null) { + this.unparsed |= color.unparsed; + } + } + + public HeatgridColorBin lowerBound(Double lowerBound) { + this.lowerBound = lowerBound; + return this; + } + + /** + * Inclusive lower bound. Omit for the first bin. + * + * @return lowerBound + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LOWER_BOUND) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getLowerBound() { + return lowerBound; + } + + public void setLowerBound(Double lowerBound) { + this.lowerBound = lowerBound; + } + + /** Return true if this HeatgridColorBin object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridColorBin heatgridColorBin = (HeatgridColorBin) o; + return Objects.equals(this.color, heatgridColorBin.color) + && Objects.equals(this.lowerBound, heatgridColorBin.lowerBound); + } + + @Override + public int hashCode() { + return Objects.hash(color, lowerBound); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridColorBin {\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" lowerBound: ").append(toIndentedString(lowerBound)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridColorConfig.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorConfig.java new file mode 100644 index 00000000000..0bcb52fd324 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorConfig.java @@ -0,0 +1,414 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = HeatgridColorConfig.HeatgridColorConfigDeserializer.class) +@JsonSerialize(using = HeatgridColorConfig.HeatgridColorConfigSerializer.class) +public class HeatgridColorConfig extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(HeatgridColorConfig.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class HeatgridColorConfigSerializer extends StdSerializer { + public HeatgridColorConfigSerializer(Class t) { + super(t); + } + + public HeatgridColorConfigSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridColorConfig value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class HeatgridColorConfigDeserializer extends StdDeserializer { + public HeatgridColorConfigDeserializer() { + this(HeatgridColorConfig.class); + } + + public HeatgridColorConfigDeserializer(Class vc) { + super(vc); + } + + @Override + public HeatgridColorConfig deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize HeatgridGradientCustomColor + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridGradientCustomColor.class.equals(Integer.class) + || HeatgridGradientCustomColor.class.equals(Long.class) + || HeatgridGradientCustomColor.class.equals(Float.class) + || HeatgridGradientCustomColor.class.equals(Double.class) + || HeatgridGradientCustomColor.class.equals(Boolean.class) + || HeatgridGradientCustomColor.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridGradientCustomColor.class.equals(Integer.class) + || HeatgridGradientCustomColor.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridGradientCustomColor.class.equals(Float.class) + || HeatgridGradientCustomColor.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridGradientCustomColor.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridGradientCustomColor.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridGradientCustomColor.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridGradientCustomColor) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridGradientCustomColor'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridGradientCustomColor'", e); + } + + // deserialize HeatgridGradientPresetColor + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridGradientPresetColor.class.equals(Integer.class) + || HeatgridGradientPresetColor.class.equals(Long.class) + || HeatgridGradientPresetColor.class.equals(Float.class) + || HeatgridGradientPresetColor.class.equals(Double.class) + || HeatgridGradientPresetColor.class.equals(Boolean.class) + || HeatgridGradientPresetColor.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridGradientPresetColor.class.equals(Integer.class) + || HeatgridGradientPresetColor.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridGradientPresetColor.class.equals(Float.class) + || HeatgridGradientPresetColor.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridGradientPresetColor.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridGradientPresetColor.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridGradientPresetColor.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridGradientPresetColor) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridGradientPresetColor'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridGradientPresetColor'", e); + } + + // deserialize HeatgridDiscreteCustomColor + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridDiscreteCustomColor.class.equals(Integer.class) + || HeatgridDiscreteCustomColor.class.equals(Long.class) + || HeatgridDiscreteCustomColor.class.equals(Float.class) + || HeatgridDiscreteCustomColor.class.equals(Double.class) + || HeatgridDiscreteCustomColor.class.equals(Boolean.class) + || HeatgridDiscreteCustomColor.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridDiscreteCustomColor.class.equals(Integer.class) + || HeatgridDiscreteCustomColor.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridDiscreteCustomColor.class.equals(Float.class) + || HeatgridDiscreteCustomColor.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridDiscreteCustomColor.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridDiscreteCustomColor.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridDiscreteCustomColor.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridDiscreteCustomColor) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridDiscreteCustomColor'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridDiscreteCustomColor'", e); + } + + // deserialize HeatgridDiscretePresetColor + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridDiscretePresetColor.class.equals(Integer.class) + || HeatgridDiscretePresetColor.class.equals(Long.class) + || HeatgridDiscretePresetColor.class.equals(Float.class) + || HeatgridDiscretePresetColor.class.equals(Double.class) + || HeatgridDiscretePresetColor.class.equals(Boolean.class) + || HeatgridDiscretePresetColor.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridDiscretePresetColor.class.equals(Integer.class) + || HeatgridDiscretePresetColor.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridDiscretePresetColor.class.equals(Float.class) + || HeatgridDiscretePresetColor.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridDiscretePresetColor.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridDiscretePresetColor.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridDiscretePresetColor.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridDiscretePresetColor) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridDiscretePresetColor'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridDiscretePresetColor'", e); + } + + HeatgridColorConfig ret = new HeatgridColorConfig(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public HeatgridColorConfig getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "HeatgridColorConfig cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public HeatgridColorConfig() { + super("oneOf", Boolean.FALSE); + } + + public HeatgridColorConfig(HeatgridGradientCustomColor o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public HeatgridColorConfig(HeatgridGradientPresetColor o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public HeatgridColorConfig(HeatgridDiscreteCustomColor o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public HeatgridColorConfig(HeatgridDiscretePresetColor o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("HeatgridGradientCustomColor", new GenericType() {}); + schemas.put("HeatgridGradientPresetColor", new GenericType() {}); + schemas.put("HeatgridDiscreteCustomColor", new GenericType() {}); + schemas.put("HeatgridDiscretePresetColor", new GenericType() {}); + JSON.registerDescendants(HeatgridColorConfig.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return HeatgridColorConfig.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: HeatgridGradientCustomColor, HeatgridGradientPresetColor, + * HeatgridDiscreteCustomColor, HeatgridDiscretePresetColor + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(HeatgridGradientCustomColor.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(HeatgridGradientPresetColor.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(HeatgridDiscreteCustomColor.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(HeatgridDiscretePresetColor.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be HeatgridGradientCustomColor, HeatgridGradientPresetColor," + + " HeatgridDiscreteCustomColor, HeatgridDiscretePresetColor"); + } + + /** + * Get the actual instance, which can be the following: HeatgridGradientCustomColor, + * HeatgridGradientPresetColor, HeatgridDiscreteCustomColor, HeatgridDiscretePresetColor + * + * @return The actual instance (HeatgridGradientCustomColor, HeatgridGradientPresetColor, + * HeatgridDiscreteCustomColor, HeatgridDiscretePresetColor) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridGradientCustomColor`. If the actual instance is not + * `HeatgridGradientCustomColor`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridGradientCustomColor` + * @throws ClassCastException if the instance is not `HeatgridGradientCustomColor` + */ + public HeatgridGradientCustomColor getHeatgridGradientCustomColor() throws ClassCastException { + return (HeatgridGradientCustomColor) super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridGradientPresetColor`. If the actual instance is not + * `HeatgridGradientPresetColor`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridGradientPresetColor` + * @throws ClassCastException if the instance is not `HeatgridGradientPresetColor` + */ + public HeatgridGradientPresetColor getHeatgridGradientPresetColor() throws ClassCastException { + return (HeatgridGradientPresetColor) super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridDiscreteCustomColor`. If the actual instance is not + * `HeatgridDiscreteCustomColor`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridDiscreteCustomColor` + * @throws ClassCastException if the instance is not `HeatgridDiscreteCustomColor` + */ + public HeatgridDiscreteCustomColor getHeatgridDiscreteCustomColor() throws ClassCastException { + return (HeatgridDiscreteCustomColor) super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridDiscretePresetColor`. If the actual instance is not + * `HeatgridDiscretePresetColor`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridDiscretePresetColor` + * @throws ClassCastException if the instance is not `HeatgridDiscretePresetColor` + */ + public HeatgridDiscretePresetColor getHeatgridDiscretePresetColor() throws ClassCastException { + return (HeatgridDiscretePresetColor) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridColorStop.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorStop.java new file mode 100644 index 00000000000..fff5a8baff3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridColorStop.java @@ -0,0 +1,124 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** A position and color in a continuous gradient. */ +@JsonPropertyOrder({ + HeatgridColorStop.JSON_PROPERTY_COLOR, + HeatgridColorStop.JSON_PROPERTY_POSITION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridColorStop { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COLOR = "color"; + private HeatgridColor color; + + public static final String JSON_PROPERTY_POSITION = "position"; + private Long position; + + public HeatgridColorStop() {} + + @JsonCreator + public HeatgridColorStop( + @JsonProperty(required = true, value = JSON_PROPERTY_COLOR) HeatgridColor color, + @JsonProperty(required = true, value = JSON_PROPERTY_POSITION) Long position) { + this.color = color; + this.unparsed |= color.unparsed; + this.position = position; + } + + public HeatgridColorStop color(HeatgridColor color) { + this.color = color; + this.unparsed |= color.unparsed; + return this; + } + + /** + * A color string, or two color strings for the light and dark themes, in that order. + * + * @return color + */ + @JsonProperty(JSON_PROPERTY_COLOR) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridColor getColor() { + return color; + } + + public void setColor(HeatgridColor color) { + this.color = color; + if (color != null) { + this.unparsed |= color.unparsed; + } + } + + public HeatgridColorStop position(Long position) { + this.position = position; + return this; + } + + /** + * Position in the gradient, from 0 to 100. minimum: 0 maximum: 100 + * + * @return position + */ + @JsonProperty(JSON_PROPERTY_POSITION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getPosition() { + return position; + } + + public void setPosition(Long position) { + this.position = position; + } + + /** Return true if this HeatgridColorStop object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridColorStop heatgridColorStop = (HeatgridColorStop) o; + return Objects.equals(this.color, heatgridColorStop.color) + && Objects.equals(this.position, heatgridColorStop.position); + } + + @Override + public int hashCode() { + return Objects.hash(color, position); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridColorStop {\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridCustomColorSource.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridCustomColorSource.java new file mode 100644 index 00000000000..98fe26019a1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridCustomColorSource.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Use custom colors. */ +@JsonSerialize(using = HeatgridCustomColorSource.HeatgridCustomColorSourceSerializer.class) +public class HeatgridCustomColorSource extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("custom")); + + public static final HeatgridCustomColorSource CUSTOM = new HeatgridCustomColorSource("custom"); + + HeatgridCustomColorSource(String value) { + super(value, allowedValues); + } + + public static class HeatgridCustomColorSourceSerializer + extends StdSerializer { + public HeatgridCustomColorSourceSerializer(Class t) { + super(t); + } + + public HeatgridCustomColorSourceSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridCustomColorSource value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridCustomColorSource fromValue(String value) { + return new HeatgridCustomColorSource(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteCustomColor.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteCustomColor.java new file mode 100644 index 00000000000..64892df140f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteCustomColor.java @@ -0,0 +1,178 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** Discrete thresholds with custom colors. */ +@JsonPropertyOrder({ + HeatgridDiscreteCustomColor.JSON_PROPERTY_BINS, + HeatgridDiscreteCustomColor.JSON_PROPERTY_MODE, + HeatgridDiscreteCustomColor.JSON_PROPERTY_SOURCE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridDiscreteCustomColor { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_BINS = "bins"; + private List bins = new ArrayList<>(); + + public static final String JSON_PROPERTY_MODE = "mode"; + private HeatgridDiscreteMode mode; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private HeatgridCustomColorSource source; + + public HeatgridDiscreteCustomColor() {} + + @JsonCreator + public HeatgridDiscreteCustomColor( + @JsonProperty(required = true, value = JSON_PROPERTY_BINS) List bins, + @JsonProperty(required = true, value = JSON_PROPERTY_MODE) HeatgridDiscreteMode mode, + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) + HeatgridCustomColorSource source) { + this.bins = bins; + for (HeatgridColorBin item : bins) { + this.unparsed |= item.unparsed; + } + this.mode = mode; + this.unparsed |= !mode.isValid(); + this.source = source; + this.unparsed |= !source.isValid(); + } + + public HeatgridDiscreteCustomColor bins(List bins) { + this.bins = bins; + for (HeatgridColorBin item : bins) { + this.unparsed |= item.unparsed; + } + return this; + } + + public HeatgridDiscreteCustomColor addBinsItem(HeatgridColorBin binsItem) { + this.bins.add(binsItem); + this.unparsed |= binsItem.unparsed; + return this; + } + + /** + * Two to six bins. Omit lower_bound on the first bin. Subsequent lower bounds must + * be in ascending order. + * + * @return bins + */ + @JsonProperty(JSON_PROPERTY_BINS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getBins() { + return bins; + } + + public void setBins(List bins) { + this.bins = bins; + if (bins != null) { + for (HeatgridColorBin item : bins) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridDiscreteCustomColor mode(HeatgridDiscreteMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * Use discrete color thresholds. + * + * @return mode + */ + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridDiscreteMode getMode() { + return mode; + } + + public void setMode(HeatgridDiscreteMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + public HeatgridDiscreteCustomColor source(HeatgridCustomColorSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + return this; + } + + /** + * Use custom colors. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridCustomColorSource getSource() { + return source; + } + + public void setSource(HeatgridCustomColorSource source) { + if (!source.isValid()) { + this.unparsed = true; + } + this.source = source; + } + + /** Return true if this HeatgridDiscreteCustomColor object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridDiscreteCustomColor heatgridDiscreteCustomColor = (HeatgridDiscreteCustomColor) o; + return Objects.equals(this.bins, heatgridDiscreteCustomColor.bins) + && Objects.equals(this.mode, heatgridDiscreteCustomColor.mode) + && Objects.equals(this.source, heatgridDiscreteCustomColor.source); + } + + @Override + public int hashCode() { + return Objects.hash(bins, mode, source); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridDiscreteCustomColor {\n"); + sb.append(" bins: ").append(toIndentedString(bins)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteMode.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteMode.java new file mode 100644 index 00000000000..f9d74bc5ab5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscreteMode.java @@ -0,0 +1,54 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Use discrete color thresholds. */ +@JsonSerialize(using = HeatgridDiscreteMode.HeatgridDiscreteModeSerializer.class) +public class HeatgridDiscreteMode extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("discrete")); + + public static final HeatgridDiscreteMode DISCRETE = new HeatgridDiscreteMode("discrete"); + + HeatgridDiscreteMode(String value) { + super(value, allowedValues); + } + + public static class HeatgridDiscreteModeSerializer extends StdSerializer { + public HeatgridDiscreteModeSerializer(Class t) { + super(t); + } + + public HeatgridDiscreteModeSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridDiscreteMode value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridDiscreteMode fromValue(String value) { + return new HeatgridDiscreteMode(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscretePresetColor.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscretePresetColor.java new file mode 100644 index 00000000000..467fbd8255d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridDiscretePresetColor.java @@ -0,0 +1,158 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** A preset discrete color palette. */ +@JsonPropertyOrder({ + HeatgridDiscretePresetColor.JSON_PROPERTY_MODE, + HeatgridDiscretePresetColor.JSON_PROPERTY_PRESET_NAME, + HeatgridDiscretePresetColor.JSON_PROPERTY_SOURCE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridDiscretePresetColor { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MODE = "mode"; + private HeatgridDiscreteMode mode; + + public static final String JSON_PROPERTY_PRESET_NAME = "preset_name"; + private String presetName; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private HeatgridPresetColorSource source; + + public HeatgridDiscretePresetColor() {} + + @JsonCreator + public HeatgridDiscretePresetColor( + @JsonProperty(required = true, value = JSON_PROPERTY_MODE) HeatgridDiscreteMode mode, + @JsonProperty(required = true, value = JSON_PROPERTY_PRESET_NAME) String presetName, + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) + HeatgridPresetColorSource source) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + this.presetName = presetName; + this.source = source; + this.unparsed |= !source.isValid(); + } + + public HeatgridDiscretePresetColor mode(HeatgridDiscreteMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * Use discrete color thresholds. + * + * @return mode + */ + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridDiscreteMode getMode() { + return mode; + } + + public void setMode(HeatgridDiscreteMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + public HeatgridDiscretePresetColor presetName(String presetName) { + this.presetName = presetName; + return this; + } + + /** + * Name of the preset color palette. + * + * @return presetName + */ + @JsonProperty(JSON_PROPERTY_PRESET_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPresetName() { + return presetName; + } + + public void setPresetName(String presetName) { + this.presetName = presetName; + } + + public HeatgridDiscretePresetColor source(HeatgridPresetColorSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + return this; + } + + /** + * Use a preset color palette. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridPresetColorSource getSource() { + return source; + } + + public void setSource(HeatgridPresetColorSource source) { + if (!source.isValid()) { + this.unparsed = true; + } + this.source = source; + } + + /** Return true if this HeatgridDiscretePresetColor object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridDiscretePresetColor heatgridDiscretePresetColor = (HeatgridDiscretePresetColor) o; + return Objects.equals(this.mode, heatgridDiscretePresetColor.mode) + && Objects.equals(this.presetName, heatgridDiscretePresetColor.presetName) + && Objects.equals(this.source, heatgridDiscretePresetColor.source); + } + + @Override + public int hashCode() { + return Objects.hash(mode, presetName, source); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridDiscretePresetColor {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" presetName: ").append(toIndentedString(presetName)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientCustomColor.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientCustomColor.java new file mode 100644 index 00000000000..4dbf44c41e9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientCustomColor.java @@ -0,0 +1,176 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** A continuous gradient with custom color stops. */ +@JsonPropertyOrder({ + HeatgridGradientCustomColor.JSON_PROPERTY_MODE, + HeatgridGradientCustomColor.JSON_PROPERTY_SOURCE, + HeatgridGradientCustomColor.JSON_PROPERTY_STOPS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridGradientCustomColor { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MODE = "mode"; + private HeatgridGradientMode mode; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private HeatgridCustomColorSource source; + + public static final String JSON_PROPERTY_STOPS = "stops"; + private List stops = new ArrayList<>(); + + public HeatgridGradientCustomColor() {} + + @JsonCreator + public HeatgridGradientCustomColor( + @JsonProperty(required = true, value = JSON_PROPERTY_MODE) HeatgridGradientMode mode, + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) HeatgridCustomColorSource source, + @JsonProperty(required = true, value = JSON_PROPERTY_STOPS) List stops) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + this.source = source; + this.unparsed |= !source.isValid(); + this.stops = stops; + for (HeatgridColorStop item : stops) { + this.unparsed |= item.unparsed; + } + } + + public HeatgridGradientCustomColor mode(HeatgridGradientMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * Use a continuous color gradient. + * + * @return mode + */ + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridGradientMode getMode() { + return mode; + } + + public void setMode(HeatgridGradientMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + public HeatgridGradientCustomColor source(HeatgridCustomColorSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + return this; + } + + /** + * Use custom colors. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridCustomColorSource getSource() { + return source; + } + + public void setSource(HeatgridCustomColorSource source) { + if (!source.isValid()) { + this.unparsed = true; + } + this.source = source; + } + + public HeatgridGradientCustomColor stops(List stops) { + this.stops = stops; + for (HeatgridColorStop item : stops) { + this.unparsed |= item.unparsed; + } + return this; + } + + public HeatgridGradientCustomColor addStopsItem(HeatgridColorStop stopsItem) { + this.stops.add(stopsItem); + this.unparsed |= stopsItem.unparsed; + return this; + } + + /** + * Two to six stops with positions in ascending order. + * + * @return stops + */ + @JsonProperty(JSON_PROPERTY_STOPS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getStops() { + return stops; + } + + public void setStops(List stops) { + this.stops = stops; + if (stops != null) { + for (HeatgridColorStop item : stops) { + this.unparsed |= item.unparsed; + } + } + } + + /** Return true if this HeatgridGradientCustomColor object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridGradientCustomColor heatgridGradientCustomColor = (HeatgridGradientCustomColor) o; + return Objects.equals(this.mode, heatgridGradientCustomColor.mode) + && Objects.equals(this.source, heatgridGradientCustomColor.source) + && Objects.equals(this.stops, heatgridGradientCustomColor.stops); + } + + @Override + public int hashCode() { + return Objects.hash(mode, source, stops); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridGradientCustomColor {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" stops: ").append(toIndentedString(stops)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientMode.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientMode.java new file mode 100644 index 00000000000..6505f290e3b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientMode.java @@ -0,0 +1,54 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Use a continuous color gradient. */ +@JsonSerialize(using = HeatgridGradientMode.HeatgridGradientModeSerializer.class) +public class HeatgridGradientMode extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("gradient")); + + public static final HeatgridGradientMode GRADIENT = new HeatgridGradientMode("gradient"); + + HeatgridGradientMode(String value) { + super(value, allowedValues); + } + + public static class HeatgridGradientModeSerializer extends StdSerializer { + public HeatgridGradientModeSerializer(Class t) { + super(t); + } + + public HeatgridGradientModeSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridGradientMode value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridGradientMode fromValue(String value) { + return new HeatgridGradientMode(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientPresetColor.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientPresetColor.java new file mode 100644 index 00000000000..8959352771d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridGradientPresetColor.java @@ -0,0 +1,158 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** A preset gradient color palette. */ +@JsonPropertyOrder({ + HeatgridGradientPresetColor.JSON_PROPERTY_MODE, + HeatgridGradientPresetColor.JSON_PROPERTY_PRESET_NAME, + HeatgridGradientPresetColor.JSON_PROPERTY_SOURCE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridGradientPresetColor { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MODE = "mode"; + private HeatgridGradientMode mode; + + public static final String JSON_PROPERTY_PRESET_NAME = "preset_name"; + private String presetName; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private HeatgridPresetColorSource source; + + public HeatgridGradientPresetColor() {} + + @JsonCreator + public HeatgridGradientPresetColor( + @JsonProperty(required = true, value = JSON_PROPERTY_MODE) HeatgridGradientMode mode, + @JsonProperty(required = true, value = JSON_PROPERTY_PRESET_NAME) String presetName, + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) + HeatgridPresetColorSource source) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + this.presetName = presetName; + this.source = source; + this.unparsed |= !source.isValid(); + } + + public HeatgridGradientPresetColor mode(HeatgridGradientMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * Use a continuous color gradient. + * + * @return mode + */ + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridGradientMode getMode() { + return mode; + } + + public void setMode(HeatgridGradientMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + public HeatgridGradientPresetColor presetName(String presetName) { + this.presetName = presetName; + return this; + } + + /** + * Name of the preset color palette. + * + * @return presetName + */ + @JsonProperty(JSON_PROPERTY_PRESET_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPresetName() { + return presetName; + } + + public void setPresetName(String presetName) { + this.presetName = presetName; + } + + public HeatgridGradientPresetColor source(HeatgridPresetColorSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + return this; + } + + /** + * Use a preset color palette. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridPresetColorSource getSource() { + return source; + } + + public void setSource(HeatgridPresetColorSource source) { + if (!source.isValid()) { + this.unparsed = true; + } + this.source = source; + } + + /** Return true if this HeatgridGradientPresetColor object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridGradientPresetColor heatgridGradientPresetColor = (HeatgridGradientPresetColor) o; + return Objects.equals(this.mode, heatgridGradientPresetColor.mode) + && Objects.equals(this.presetName, heatgridGradientPresetColor.presetName) + && Objects.equals(this.source, heatgridGradientPresetColor.source); + } + + @Override + public int hashCode() { + return Objects.hash(mode, presetName, source); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridGradientPresetColor {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" presetName: ").append(toIndentedString(presetName)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumn.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumn.java new file mode 100644 index 00000000000..0324674b89f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumn.java @@ -0,0 +1,94 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** Configuration of the group label column. */ +@JsonPropertyOrder({HeatgridLabelColumn.JSON_PROPERTY_WIDTH}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridLabelColumn { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_WIDTH = "width"; + private HeatgridLabelColumnWidth width; + + public HeatgridLabelColumn() {} + + @JsonCreator + public HeatgridLabelColumn( + @JsonProperty(required = true, value = JSON_PROPERTY_WIDTH) HeatgridLabelColumnWidth width) { + this.width = width; + this.unparsed |= !width.isValid(); + } + + public HeatgridLabelColumn width(HeatgridLabelColumnWidth width) { + this.width = width; + this.unparsed |= !width.isValid(); + return this; + } + + /** + * Width of the label column. + * + * @return width + */ + @JsonProperty(JSON_PROPERTY_WIDTH) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridLabelColumnWidth getWidth() { + return width; + } + + public void setWidth(HeatgridLabelColumnWidth width) { + if (!width.isValid()) { + this.unparsed = true; + } + this.width = width; + } + + /** Return true if this HeatgridLabelColumn object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridLabelColumn heatgridLabelColumn = (HeatgridLabelColumn) o; + return Objects.equals(this.width, heatgridLabelColumn.width); + } + + @Override + public int hashCode() { + return Objects.hash(width); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridLabelColumn {\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumnWidth.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumnWidth.java new file mode 100644 index 00000000000..bda1b60d21d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridLabelColumnWidth.java @@ -0,0 +1,60 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Width of the label column. */ +@JsonSerialize(using = HeatgridLabelColumnWidth.HeatgridLabelColumnWidthSerializer.class) +public class HeatgridLabelColumnWidth extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("xs", "s", "m", "l", "xl")); + + public static final HeatgridLabelColumnWidth XS = new HeatgridLabelColumnWidth("xs"); + public static final HeatgridLabelColumnWidth S = new HeatgridLabelColumnWidth("s"); + public static final HeatgridLabelColumnWidth M = new HeatgridLabelColumnWidth("m"); + public static final HeatgridLabelColumnWidth L = new HeatgridLabelColumnWidth("l"); + public static final HeatgridLabelColumnWidth XL = new HeatgridLabelColumnWidth("xl"); + + HeatgridLabelColumnWidth(String value) { + super(value, allowedValues); + } + + public static class HeatgridLabelColumnWidthSerializer + extends StdSerializer { + public HeatgridLabelColumnWidthSerializer(Class t) { + super(t); + } + + public HeatgridLabelColumnWidthSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridLabelColumnWidth value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridLabelColumnWidth fromValue(String value) { + return new HeatgridLabelColumnWidth(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridLegend.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridLegend.java new file mode 100644 index 00000000000..d7056ec4dad --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridLegend.java @@ -0,0 +1,81 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** Legend configuration for the heatgrid widget. */ +@JsonPropertyOrder({HeatgridLegend.JSON_PROPERTY_SHOW_CAPTION}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridLegend { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_SHOW_CAPTION = "show_caption"; + private Boolean showCaption; + + public HeatgridLegend showCaption(Boolean showCaption) { + this.showCaption = showCaption; + return this; + } + + /** + * Whether to display the legend caption. + * + * @return showCaption + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SHOW_CAPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getShowCaption() { + return showCaption; + } + + public void setShowCaption(Boolean showCaption) { + this.showCaption = showCaption; + } + + /** Return true if this HeatgridLegend object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridLegend heatgridLegend = (HeatgridLegend) o; + return Objects.equals(this.showCaption, heatgridLegend.showCaption); + } + + @Override + public int hashCode() { + return Objects.hash(showCaption); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridLegend {\n"); + sb.append(" showCaption: ").append(toIndentedString(showCaption)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridNestingDisplay.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridNestingDisplay.java new file mode 100644 index 00000000000..35c4afa182e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridNestingDisplay.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Display groups as flat rows. */ +@JsonSerialize(using = HeatgridNestingDisplay.HeatgridNestingDisplaySerializer.class) +public class HeatgridNestingDisplay extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("flat")); + + public static final HeatgridNestingDisplay FLAT = new HeatgridNestingDisplay("flat"); + + HeatgridNestingDisplay(String value) { + super(value, allowedValues); + } + + public static class HeatgridNestingDisplaySerializer + extends StdSerializer { + public HeatgridNestingDisplaySerializer(Class t) { + super(t); + } + + public HeatgridNestingDisplaySerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridNestingDisplay value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridNestingDisplay fromValue(String value) { + return new HeatgridNestingDisplay(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridPresetColorSource.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridPresetColorSource.java new file mode 100644 index 00000000000..6a422966de6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridPresetColorSource.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Use a preset color palette. */ +@JsonSerialize(using = HeatgridPresetColorSource.HeatgridPresetColorSourceSerializer.class) +public class HeatgridPresetColorSource extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("preset")); + + public static final HeatgridPresetColorSource PRESET = new HeatgridPresetColorSource("preset"); + + HeatgridPresetColorSource(String value) { + super(value, allowedValues); + } + + public static class HeatgridPresetColorSourceSerializer + extends StdSerializer { + public HeatgridPresetColorSourceSerializer(Class t) { + super(t); + } + + public HeatgridPresetColorSourceSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridPresetColorSource value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridPresetColorSource fromValue(String value) { + return new HeatgridPresetColorSource(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSort.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSort.java new file mode 100644 index 00000000000..0dbb781d04e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSort.java @@ -0,0 +1,127 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** Ordering of the heatgrid rows. */ +@JsonPropertyOrder({HeatgridSort.JSON_PROPERTY_NESTING_DISPLAY, HeatgridSort.JSON_PROPERTY_SORT_BY}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridSort { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_NESTING_DISPLAY = "nesting_display"; + private HeatgridNestingDisplay nestingDisplay; + + public static final String JSON_PROPERTY_SORT_BY = "sort_by"; + private HeatgridSortBy sortBy; + + public HeatgridSort() {} + + @JsonCreator + public HeatgridSort( + @JsonProperty(required = true, value = JSON_PROPERTY_NESTING_DISPLAY) + HeatgridNestingDisplay nestingDisplay, + @JsonProperty(required = true, value = JSON_PROPERTY_SORT_BY) HeatgridSortBy sortBy) { + this.nestingDisplay = nestingDisplay; + this.unparsed |= !nestingDisplay.isValid(); + this.sortBy = sortBy; + this.unparsed |= sortBy.unparsed; + } + + public HeatgridSort nestingDisplay(HeatgridNestingDisplay nestingDisplay) { + this.nestingDisplay = nestingDisplay; + this.unparsed |= !nestingDisplay.isValid(); + return this; + } + + /** + * Display groups as flat rows. + * + * @return nestingDisplay + */ + @JsonProperty(JSON_PROPERTY_NESTING_DISPLAY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridNestingDisplay getNestingDisplay() { + return nestingDisplay; + } + + public void setNestingDisplay(HeatgridNestingDisplay nestingDisplay) { + if (!nestingDisplay.isValid()) { + this.unparsed = true; + } + this.nestingDisplay = nestingDisplay; + } + + public HeatgridSort sortBy(HeatgridSortBy sortBy) { + this.sortBy = sortBy; + this.unparsed |= sortBy.unparsed; + return this; + } + + /** + * Sort rows by aggregated value or group label. + * + * @return sortBy + */ + @JsonProperty(JSON_PROPERTY_SORT_BY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortBy getSortBy() { + return sortBy; + } + + public void setSortBy(HeatgridSortBy sortBy) { + this.sortBy = sortBy; + if (sortBy != null) { + this.unparsed |= sortBy.unparsed; + } + } + + /** Return true if this HeatgridSort object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridSort heatgridSort = (HeatgridSort) o; + return Objects.equals(this.nestingDisplay, heatgridSort.nestingDisplay) + && Objects.equals(this.sortBy, heatgridSort.sortBy); + } + + @Override + public int hashCode() { + return Objects.hash(nestingDisplay, sortBy); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridSort {\n"); + sb.append(" nestingDisplay: ").append(toIndentedString(nestingDisplay)).append("\n"); + sb.append(" sortBy: ").append(toIndentedString(sortBy)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortAggregation.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortAggregation.java new file mode 100644 index 00000000000..e95e1ba048d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortAggregation.java @@ -0,0 +1,59 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Aggregation used to order rows over the displayed time range. */ +@JsonSerialize(using = HeatgridSortAggregation.HeatgridSortAggregationSerializer.class) +public class HeatgridSortAggregation extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("avg", "min", "max", "sum")); + + public static final HeatgridSortAggregation AVG = new HeatgridSortAggregation("avg"); + public static final HeatgridSortAggregation MIN = new HeatgridSortAggregation("min"); + public static final HeatgridSortAggregation MAX = new HeatgridSortAggregation("max"); + public static final HeatgridSortAggregation SUM = new HeatgridSortAggregation("sum"); + + HeatgridSortAggregation(String value) { + super(value, allowedValues); + } + + public static class HeatgridSortAggregationSerializer + extends StdSerializer { + public HeatgridSortAggregationSerializer(Class t) { + super(t); + } + + public HeatgridSortAggregationSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridSortAggregation value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridSortAggregation fromValue(String value) { + return new HeatgridSortAggregation(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortBy.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortBy.java new file mode 100644 index 00000000000..d8b9d5663a3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortBy.java @@ -0,0 +1,274 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = HeatgridSortBy.HeatgridSortByDeserializer.class) +@JsonSerialize(using = HeatgridSortBy.HeatgridSortBySerializer.class) +public class HeatgridSortBy extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(HeatgridSortBy.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class HeatgridSortBySerializer extends StdSerializer { + public HeatgridSortBySerializer(Class t) { + super(t); + } + + public HeatgridSortBySerializer() { + this(null); + } + + @Override + public void serialize(HeatgridSortBy value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class HeatgridSortByDeserializer extends StdDeserializer { + public HeatgridSortByDeserializer() { + this(HeatgridSortBy.class); + } + + public HeatgridSortByDeserializer(Class vc) { + super(vc); + } + + @Override + public HeatgridSortBy deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize HeatgridSortByValue + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridSortByValue.class.equals(Integer.class) + || HeatgridSortByValue.class.equals(Long.class) + || HeatgridSortByValue.class.equals(Float.class) + || HeatgridSortByValue.class.equals(Double.class) + || HeatgridSortByValue.class.equals(Boolean.class) + || HeatgridSortByValue.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridSortByValue.class.equals(Integer.class) + || HeatgridSortByValue.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridSortByValue.class.equals(Float.class) + || HeatgridSortByValue.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridSortByValue.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridSortByValue.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridSortByValue.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridSortByValue) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridSortByValue'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridSortByValue'", e); + } + + // deserialize HeatgridSortByLabel + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridSortByLabel.class.equals(Integer.class) + || HeatgridSortByLabel.class.equals(Long.class) + || HeatgridSortByLabel.class.equals(Float.class) + || HeatgridSortByLabel.class.equals(Double.class) + || HeatgridSortByLabel.class.equals(Boolean.class) + || HeatgridSortByLabel.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridSortByLabel.class.equals(Integer.class) + || HeatgridSortByLabel.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridSortByLabel.class.equals(Float.class) + || HeatgridSortByLabel.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridSortByLabel.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridSortByLabel.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridSortByLabel.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridSortByLabel) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridSortByLabel'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridSortByLabel'", e); + } + + HeatgridSortBy ret = new HeatgridSortBy(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public HeatgridSortBy getNullValue(DeserializationContext ctxt) throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "HeatgridSortBy cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public HeatgridSortBy() { + super("oneOf", Boolean.FALSE); + } + + public HeatgridSortBy(HeatgridSortByValue o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public HeatgridSortBy(HeatgridSortByLabel o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("HeatgridSortByValue", new GenericType() {}); + schemas.put("HeatgridSortByLabel", new GenericType() {}); + JSON.registerDescendants(HeatgridSortBy.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return HeatgridSortBy.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: HeatgridSortByValue, HeatgridSortByLabel + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(HeatgridSortByValue.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(HeatgridSortByLabel.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be HeatgridSortByValue, HeatgridSortByLabel"); + } + + /** + * Get the actual instance, which can be the following: HeatgridSortByValue, HeatgridSortByLabel + * + * @return The actual instance (HeatgridSortByValue, HeatgridSortByLabel) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridSortByValue`. If the actual instance is not + * `HeatgridSortByValue`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridSortByValue` + * @throws ClassCastException if the instance is not `HeatgridSortByValue` + */ + public HeatgridSortByValue getHeatgridSortByValue() throws ClassCastException { + return (HeatgridSortByValue) super.getActualInstance(); + } + + /** + * Get the actual instance of `HeatgridSortByLabel`. If the actual instance is not + * `HeatgridSortByLabel`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridSortByLabel` + * @throws ClassCastException if the instance is not `HeatgridSortByLabel` + */ + public HeatgridSortByLabel getHeatgridSortByLabel() throws ClassCastException { + return (HeatgridSortByLabel) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabel.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabel.java new file mode 100644 index 00000000000..a5526a558ab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabel.java @@ -0,0 +1,130 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** Sort rows by their group labels. */ +@JsonPropertyOrder({ + HeatgridSortByLabel.JSON_PROPERTY_ORDER, + HeatgridSortByLabel.JSON_PROPERTY_PROPERTY +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridSortByLabel { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ORDER = "order"; + private HeatgridSortOrder order; + + public static final String JSON_PROPERTY_PROPERTY = "property"; + private HeatgridSortByLabelProperty property; + + public HeatgridSortByLabel() {} + + @JsonCreator + public HeatgridSortByLabel( + @JsonProperty(required = true, value = JSON_PROPERTY_ORDER) HeatgridSortOrder order, + @JsonProperty(required = true, value = JSON_PROPERTY_PROPERTY) + HeatgridSortByLabelProperty property) { + this.order = order; + this.unparsed |= !order.isValid(); + this.property = property; + this.unparsed |= !property.isValid(); + } + + public HeatgridSortByLabel order(HeatgridSortOrder order) { + this.order = order; + this.unparsed |= !order.isValid(); + return this; + } + + /** + * Sort direction. + * + * @return order + */ + @JsonProperty(JSON_PROPERTY_ORDER) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortOrder getOrder() { + return order; + } + + public void setOrder(HeatgridSortOrder order) { + if (!order.isValid()) { + this.unparsed = true; + } + this.order = order; + } + + public HeatgridSortByLabel property(HeatgridSortByLabelProperty property) { + this.property = property; + this.unparsed |= !property.isValid(); + return this; + } + + /** + * Sort by label. + * + * @return property + */ + @JsonProperty(JSON_PROPERTY_PROPERTY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortByLabelProperty getProperty() { + return property; + } + + public void setProperty(HeatgridSortByLabelProperty property) { + if (!property.isValid()) { + this.unparsed = true; + } + this.property = property; + } + + /** Return true if this HeatgridSortByLabel object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridSortByLabel heatgridSortByLabel = (HeatgridSortByLabel) o; + return Objects.equals(this.order, heatgridSortByLabel.order) + && Objects.equals(this.property, heatgridSortByLabel.property); + } + + @Override + public int hashCode() { + return Objects.hash(order, property); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridSortByLabel {\n"); + sb.append(" order: ").append(toIndentedString(order)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabelProperty.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabelProperty.java new file mode 100644 index 00000000000..677208f9721 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByLabelProperty.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Sort by label. */ +@JsonSerialize(using = HeatgridSortByLabelProperty.HeatgridSortByLabelPropertySerializer.class) +public class HeatgridSortByLabelProperty extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("label")); + + public static final HeatgridSortByLabelProperty LABEL = new HeatgridSortByLabelProperty("label"); + + HeatgridSortByLabelProperty(String value) { + super(value, allowedValues); + } + + public static class HeatgridSortByLabelPropertySerializer + extends StdSerializer { + public HeatgridSortByLabelPropertySerializer(Class t) { + super(t); + } + + public HeatgridSortByLabelPropertySerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridSortByLabelProperty value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridSortByLabelProperty fromValue(String value) { + return new HeatgridSortByLabelProperty(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValue.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValue.java new file mode 100644 index 00000000000..d2b3e0566f6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValue.java @@ -0,0 +1,164 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Objects; + +/** Sort rows by their aggregated values. */ +@JsonPropertyOrder({ + HeatgridSortByValue.JSON_PROPERTY_AGGREGATION, + HeatgridSortByValue.JSON_PROPERTY_ORDER, + HeatgridSortByValue.JSON_PROPERTY_PROPERTY +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridSortByValue { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AGGREGATION = "aggregation"; + private HeatgridSortAggregation aggregation; + + public static final String JSON_PROPERTY_ORDER = "order"; + private HeatgridSortOrder order; + + public static final String JSON_PROPERTY_PROPERTY = "property"; + private HeatgridSortByValueProperty property; + + public HeatgridSortByValue() {} + + @JsonCreator + public HeatgridSortByValue( + @JsonProperty(required = true, value = JSON_PROPERTY_AGGREGATION) + HeatgridSortAggregation aggregation, + @JsonProperty(required = true, value = JSON_PROPERTY_ORDER) HeatgridSortOrder order, + @JsonProperty(required = true, value = JSON_PROPERTY_PROPERTY) + HeatgridSortByValueProperty property) { + this.aggregation = aggregation; + this.unparsed |= !aggregation.isValid(); + this.order = order; + this.unparsed |= !order.isValid(); + this.property = property; + this.unparsed |= !property.isValid(); + } + + public HeatgridSortByValue aggregation(HeatgridSortAggregation aggregation) { + this.aggregation = aggregation; + this.unparsed |= !aggregation.isValid(); + return this; + } + + /** + * Aggregation used to order rows over the displayed time range. + * + * @return aggregation + */ + @JsonProperty(JSON_PROPERTY_AGGREGATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortAggregation getAggregation() { + return aggregation; + } + + public void setAggregation(HeatgridSortAggregation aggregation) { + if (!aggregation.isValid()) { + this.unparsed = true; + } + this.aggregation = aggregation; + } + + public HeatgridSortByValue order(HeatgridSortOrder order) { + this.order = order; + this.unparsed |= !order.isValid(); + return this; + } + + /** + * Sort direction. + * + * @return order + */ + @JsonProperty(JSON_PROPERTY_ORDER) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortOrder getOrder() { + return order; + } + + public void setOrder(HeatgridSortOrder order) { + if (!order.isValid()) { + this.unparsed = true; + } + this.order = order; + } + + public HeatgridSortByValue property(HeatgridSortByValueProperty property) { + this.property = property; + this.unparsed |= !property.isValid(); + return this; + } + + /** + * Sort by value. + * + * @return property + */ + @JsonProperty(JSON_PROPERTY_PROPERTY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSortByValueProperty getProperty() { + return property; + } + + public void setProperty(HeatgridSortByValueProperty property) { + if (!property.isValid()) { + this.unparsed = true; + } + this.property = property; + } + + /** Return true if this HeatgridSortByValue object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridSortByValue heatgridSortByValue = (HeatgridSortByValue) o; + return Objects.equals(this.aggregation, heatgridSortByValue.aggregation) + && Objects.equals(this.order, heatgridSortByValue.order) + && Objects.equals(this.property, heatgridSortByValue.property); + } + + @Override + public int hashCode() { + return Objects.hash(aggregation, order, property); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridSortByValue {\n"); + sb.append(" aggregation: ").append(toIndentedString(aggregation)).append("\n"); + sb.append(" order: ").append(toIndentedString(order)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValueProperty.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValueProperty.java new file mode 100644 index 00000000000..91f0c1cdaa6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortByValueProperty.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Sort by value. */ +@JsonSerialize(using = HeatgridSortByValueProperty.HeatgridSortByValuePropertySerializer.class) +public class HeatgridSortByValueProperty extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("value")); + + public static final HeatgridSortByValueProperty VALUE = new HeatgridSortByValueProperty("value"); + + HeatgridSortByValueProperty(String value) { + super(value, allowedValues); + } + + public static class HeatgridSortByValuePropertySerializer + extends StdSerializer { + public HeatgridSortByValuePropertySerializer(Class t) { + super(t); + } + + public HeatgridSortByValuePropertySerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridSortByValueProperty value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridSortByValueProperty fromValue(String value) { + return new HeatgridSortByValueProperty(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridSortOrder.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortOrder.java new file mode 100644 index 00000000000..2b5d4bbd291 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridSortOrder.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Sort direction. */ +@JsonSerialize(using = HeatgridSortOrder.HeatgridSortOrderSerializer.class) +public class HeatgridSortOrder extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("asc", "desc")); + + public static final HeatgridSortOrder ASC = new HeatgridSortOrder("asc"); + public static final HeatgridSortOrder DESC = new HeatgridSortOrder("desc"); + + HeatgridSortOrder(String value) { + super(value, allowedValues); + } + + public static class HeatgridSortOrderSerializer extends StdSerializer { + public HeatgridSortOrderSerializer(Class t) { + super(t); + } + + public HeatgridSortOrderSerializer() { + this(null); + } + + @Override + public void serialize(HeatgridSortOrder value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridSortOrder fromValue(String value) { + return new HeatgridSortOrder(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinition.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinition.java new file mode 100644 index 00000000000..4f7e037a52f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinition.java @@ -0,0 +1,472 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** The heatgrid visualization displays values for each group over time using color. */ +@JsonPropertyOrder({ + HeatgridWidgetDefinition.JSON_PROPERTY_COLOR, + HeatgridWidgetDefinition.JSON_PROPERTY_CUSTOM_LINKS, + HeatgridWidgetDefinition.JSON_PROPERTY_DESCRIPTION, + HeatgridWidgetDefinition.JSON_PROPERTY_LABEL_COLUMN, + HeatgridWidgetDefinition.JSON_PROPERTY_LEGEND, + HeatgridWidgetDefinition.JSON_PROPERTY_REQUESTS, + HeatgridWidgetDefinition.JSON_PROPERTY_SORT, + HeatgridWidgetDefinition.JSON_PROPERTY_TIME, + HeatgridWidgetDefinition.JSON_PROPERTY_TITLE, + HeatgridWidgetDefinition.JSON_PROPERTY_TITLE_ALIGN, + HeatgridWidgetDefinition.JSON_PROPERTY_TITLE_SIZE, + HeatgridWidgetDefinition.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridWidgetDefinition { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COLOR = "color"; + private HeatgridColorConfig color; + + public static final String JSON_PROPERTY_CUSTOM_LINKS = "custom_links"; + private List customLinks = null; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_LABEL_COLUMN = "label_column"; + private HeatgridLabelColumn labelColumn; + + public static final String JSON_PROPERTY_LEGEND = "legend"; + private HeatgridLegend legend; + + public static final String JSON_PROPERTY_REQUESTS = "requests"; + private List requests = new ArrayList<>(); + + public static final String JSON_PROPERTY_SORT = "sort"; + private HeatgridSort sort; + + public static final String JSON_PROPERTY_TIME = "time"; + private WidgetTime time; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public static final String JSON_PROPERTY_TITLE_ALIGN = "title_align"; + private WidgetTextAlign titleAlign; + + public static final String JSON_PROPERTY_TITLE_SIZE = "title_size"; + private String titleSize; + + public static final String JSON_PROPERTY_TYPE = "type"; + private HeatgridWidgetDefinitionType type = HeatgridWidgetDefinitionType.HEATGRID; + + public HeatgridWidgetDefinition() {} + + @JsonCreator + public HeatgridWidgetDefinition( + @JsonProperty(required = true, value = JSON_PROPERTY_REQUESTS) + List requests, + @JsonProperty(required = true, value = JSON_PROPERTY_SORT) HeatgridSort sort, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + HeatgridWidgetDefinitionType type) { + this.requests = requests; + for (HeatgridWidgetRequest item : requests) { + this.unparsed |= item.unparsed; + } + this.sort = sort; + this.unparsed |= sort.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public HeatgridWidgetDefinition color(HeatgridColorConfig color) { + this.color = color; + this.unparsed |= color.unparsed; + return this; + } + + /** + * Color configuration for continuous gradients or discrete thresholds. + * + * @return color + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COLOR) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public HeatgridColorConfig getColor() { + return color; + } + + public void setColor(HeatgridColorConfig color) { + this.color = color; + if (color != null) { + this.unparsed |= color.unparsed; + } + } + + public HeatgridWidgetDefinition customLinks(List customLinks) { + this.customLinks = customLinks; + if (customLinks != null) { + for (WidgetCustomLink item : customLinks) { + this.unparsed |= item.unparsed; + } + } + return this; + } + + public HeatgridWidgetDefinition addCustomLinksItem(WidgetCustomLink customLinksItem) { + if (this.customLinks == null) { + this.customLinks = new ArrayList<>(); + } + this.customLinks.add(customLinksItem); + this.unparsed |= customLinksItem.unparsed; + return this; + } + + /** + * List of custom links. + * + * @return customLinks + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CUSTOM_LINKS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getCustomLinks() { + return customLinks; + } + + public void setCustomLinks(List customLinks) { + this.customLinks = customLinks; + if (customLinks != null) { + for (WidgetCustomLink item : customLinks) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridWidgetDefinition description(String description) { + this.description = description; + return this; + } + + /** + * Description of the widget. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public HeatgridWidgetDefinition labelColumn(HeatgridLabelColumn labelColumn) { + this.labelColumn = labelColumn; + this.unparsed |= labelColumn.unparsed; + return this; + } + + /** + * Configuration of the group label column. + * + * @return labelColumn + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LABEL_COLUMN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public HeatgridLabelColumn getLabelColumn() { + return labelColumn; + } + + public void setLabelColumn(HeatgridLabelColumn labelColumn) { + this.labelColumn = labelColumn; + if (labelColumn != null) { + this.unparsed |= labelColumn.unparsed; + } + } + + public HeatgridWidgetDefinition legend(HeatgridLegend legend) { + this.legend = legend; + this.unparsed |= legend.unparsed; + return this; + } + + /** + * Legend configuration for the heatgrid widget. + * + * @return legend + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEGEND) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public HeatgridLegend getLegend() { + return legend; + } + + public void setLegend(HeatgridLegend legend) { + this.legend = legend; + if (legend != null) { + this.unparsed |= legend.unparsed; + } + } + + public HeatgridWidgetDefinition requests(List requests) { + this.requests = requests; + for (HeatgridWidgetRequest item : requests) { + this.unparsed |= item.unparsed; + } + return this; + } + + public HeatgridWidgetDefinition addRequestsItem(HeatgridWidgetRequest requestsItem) { + this.requests.add(requestsItem); + this.unparsed |= requestsItem.unparsed; + return this; + } + + /** + * Widget requests. The widget displays one formula, which can combine multiple queries. + * + * @return requests + */ + @JsonProperty(JSON_PROPERTY_REQUESTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRequests() { + return requests; + } + + public void setRequests(List requests) { + this.requests = requests; + if (requests != null) { + for (HeatgridWidgetRequest item : requests) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridWidgetDefinition sort(HeatgridSort sort) { + this.sort = sort; + this.unparsed |= sort.unparsed; + return this; + } + + /** + * Ordering of the heatgrid rows. + * + * @return sort + */ + @JsonProperty(JSON_PROPERTY_SORT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridSort getSort() { + return sort; + } + + public void setSort(HeatgridSort sort) { + this.sort = sort; + if (sort != null) { + this.unparsed |= sort.unparsed; + } + } + + public HeatgridWidgetDefinition time(WidgetTime time) { + this.time = time; + this.unparsed |= time.unparsed; + return this; + } + + /** + * Time setting for the widget. + * + * @return time + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TIME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetTime getTime() { + return time; + } + + public void setTime(WidgetTime time) { + this.time = time; + if (time != null) { + this.unparsed |= time.unparsed; + } + } + + public HeatgridWidgetDefinition title(String title) { + this.title = title; + return this; + } + + /** + * Title of the widget. + * + * @return title + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public HeatgridWidgetDefinition titleAlign(WidgetTextAlign titleAlign) { + this.titleAlign = titleAlign; + this.unparsed |= !titleAlign.isValid(); + return this; + } + + /** + * How to align the text on the widget. + * + * @return titleAlign + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE_ALIGN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetTextAlign getTitleAlign() { + return titleAlign; + } + + public void setTitleAlign(WidgetTextAlign titleAlign) { + if (!titleAlign.isValid()) { + this.unparsed = true; + } + this.titleAlign = titleAlign; + } + + public HeatgridWidgetDefinition titleSize(String titleSize) { + this.titleSize = titleSize; + return this; + } + + /** + * Size of the title. + * + * @return titleSize + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE_SIZE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTitleSize() { + return titleSize; + } + + public void setTitleSize(String titleSize) { + this.titleSize = titleSize; + } + + public HeatgridWidgetDefinition type(HeatgridWidgetDefinitionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of the heatgrid widget. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridWidgetDefinitionType getType() { + return type; + } + + public void setType(HeatgridWidgetDefinitionType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** Return true if this HeatgridWidgetDefinition object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridWidgetDefinition heatgridWidgetDefinition = (HeatgridWidgetDefinition) o; + return Objects.equals(this.color, heatgridWidgetDefinition.color) + && Objects.equals(this.customLinks, heatgridWidgetDefinition.customLinks) + && Objects.equals(this.description, heatgridWidgetDefinition.description) + && Objects.equals(this.labelColumn, heatgridWidgetDefinition.labelColumn) + && Objects.equals(this.legend, heatgridWidgetDefinition.legend) + && Objects.equals(this.requests, heatgridWidgetDefinition.requests) + && Objects.equals(this.sort, heatgridWidgetDefinition.sort) + && Objects.equals(this.time, heatgridWidgetDefinition.time) + && Objects.equals(this.title, heatgridWidgetDefinition.title) + && Objects.equals(this.titleAlign, heatgridWidgetDefinition.titleAlign) + && Objects.equals(this.titleSize, heatgridWidgetDefinition.titleSize) + && Objects.equals(this.type, heatgridWidgetDefinition.type); + } + + @Override + public int hashCode() { + return Objects.hash( + color, + customLinks, + description, + labelColumn, + legend, + requests, + sort, + time, + title, + titleAlign, + titleSize, + type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridWidgetDefinition {\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" customLinks: ").append(toIndentedString(customLinks)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" labelColumn: ").append(toIndentedString(labelColumn)).append("\n"); + sb.append(" legend: ").append(toIndentedString(legend)).append("\n"); + sb.append(" requests: ").append(toIndentedString(requests)).append("\n"); + sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); + sb.append(" time: ").append(toIndentedString(time)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" titleAlign: ").append(toIndentedString(titleAlign)).append("\n"); + sb.append(" titleSize: ").append(toIndentedString(titleSize)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinitionType.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinitionType.java new file mode 100644 index 00000000000..5c9708d61c7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetDefinitionType.java @@ -0,0 +1,56 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Type of the heatgrid widget. */ +@JsonSerialize(using = HeatgridWidgetDefinitionType.HeatgridWidgetDefinitionTypeSerializer.class) +public class HeatgridWidgetDefinitionType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("heatgrid")); + + public static final HeatgridWidgetDefinitionType HEATGRID = + new HeatgridWidgetDefinitionType("heatgrid"); + + HeatgridWidgetDefinitionType(String value) { + super(value, allowedValues); + } + + public static class HeatgridWidgetDefinitionTypeSerializer + extends StdSerializer { + public HeatgridWidgetDefinitionTypeSerializer(Class t) { + super(t); + } + + public HeatgridWidgetDefinitionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridWidgetDefinitionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridWidgetDefinitionType fromValue(String value) { + return new HeatgridWidgetDefinitionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetFormula.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetFormula.java new file mode 100644 index 00000000000..8edf44d218e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetFormula.java @@ -0,0 +1,262 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** A formula for a heatgrid widget request. */ +@JsonPropertyOrder({ + HeatgridWidgetFormula.JSON_PROPERTY_ALIAS, + HeatgridWidgetFormula.JSON_PROPERTY_CONDITIONAL_FORMATS, + HeatgridWidgetFormula.JSON_PROPERTY_FORMULA, + HeatgridWidgetFormula.JSON_PROPERTY_LIMIT, + HeatgridWidgetFormula.JSON_PROPERTY_NUMBER_FORMAT, + HeatgridWidgetFormula.JSON_PROPERTY_STYLE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridWidgetFormula { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ALIAS = "alias"; + private String alias; + + public static final String JSON_PROPERTY_CONDITIONAL_FORMATS = "conditional_formats"; + private List conditionalFormats = null; + + public static final String JSON_PROPERTY_FORMULA = "formula"; + private String formula; + + public static final String JSON_PROPERTY_LIMIT = "limit"; + private WidgetFormulaLimit limit; + + public static final String JSON_PROPERTY_NUMBER_FORMAT = "number_format"; + private WidgetNumberFormat numberFormat; + + public static final String JSON_PROPERTY_STYLE = "style"; + private WidgetFormulaStyle style; + + public HeatgridWidgetFormula() {} + + @JsonCreator + public HeatgridWidgetFormula( + @JsonProperty(required = true, value = JSON_PROPERTY_FORMULA) String formula) { + this.formula = formula; + } + + public HeatgridWidgetFormula alias(String alias) { + this.alias = alias; + return this; + } + + /** + * Expression alias. + * + * @return alias + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ALIAS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public HeatgridWidgetFormula conditionalFormats( + List conditionalFormats) { + this.conditionalFormats = conditionalFormats; + if (conditionalFormats != null) { + for (WidgetConditionalFormat item : conditionalFormats) { + this.unparsed |= item.unparsed; + } + } + return this; + } + + public HeatgridWidgetFormula addConditionalFormatsItem( + WidgetConditionalFormat conditionalFormatsItem) { + if (this.conditionalFormats == null) { + this.conditionalFormats = new ArrayList<>(); + } + this.conditionalFormats.add(conditionalFormatsItem); + this.unparsed |= conditionalFormatsItem.unparsed; + return this; + } + + /** + * Conditional formatting rules. These rules do not affect heatgrid rendering. Use the + * widget-level color configuration to control cell colors. + * + * @return conditionalFormats + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CONDITIONAL_FORMATS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getConditionalFormats() { + return conditionalFormats; + } + + public void setConditionalFormats(List conditionalFormats) { + this.conditionalFormats = conditionalFormats; + if (conditionalFormats != null) { + for (WidgetConditionalFormat item : conditionalFormats) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridWidgetFormula formula(String formula) { + this.formula = formula; + return this; + } + + /** + * String expression built from queries, formulas, and functions. + * + * @return formula + */ + @JsonProperty(JSON_PROPERTY_FORMULA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getFormula() { + return formula; + } + + public void setFormula(String formula) { + this.formula = formula; + } + + public HeatgridWidgetFormula limit(WidgetFormulaLimit limit) { + this.limit = limit; + this.unparsed |= limit.unparsed; + return this; + } + + /** + * Options for limiting results returned. + * + * @return limit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LIMIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetFormulaLimit getLimit() { + return limit; + } + + public void setLimit(WidgetFormulaLimit limit) { + this.limit = limit; + if (limit != null) { + this.unparsed |= limit.unparsed; + } + } + + public HeatgridWidgetFormula numberFormat(WidgetNumberFormat numberFormat) { + this.numberFormat = numberFormat; + this.unparsed |= numberFormat.unparsed; + return this; + } + + /** + * Number format options for the widget. + * + * @return numberFormat + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NUMBER_FORMAT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetNumberFormat getNumberFormat() { + return numberFormat; + } + + public void setNumberFormat(WidgetNumberFormat numberFormat) { + this.numberFormat = numberFormat; + if (numberFormat != null) { + this.unparsed |= numberFormat.unparsed; + } + } + + public HeatgridWidgetFormula style(WidgetFormulaStyle style) { + this.style = style; + this.unparsed |= style.unparsed; + return this; + } + + /** + * Styling options for widget formulas. + * + * @return style + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STYLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetFormulaStyle getStyle() { + return style; + } + + public void setStyle(WidgetFormulaStyle style) { + this.style = style; + if (style != null) { + this.unparsed |= style.unparsed; + } + } + + /** Return true if this HeatgridWidgetFormula object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridWidgetFormula heatgridWidgetFormula = (HeatgridWidgetFormula) o; + return Objects.equals(this.alias, heatgridWidgetFormula.alias) + && Objects.equals(this.conditionalFormats, heatgridWidgetFormula.conditionalFormats) + && Objects.equals(this.formula, heatgridWidgetFormula.formula) + && Objects.equals(this.limit, heatgridWidgetFormula.limit) + && Objects.equals(this.numberFormat, heatgridWidgetFormula.numberFormat) + && Objects.equals(this.style, heatgridWidgetFormula.style); + } + + @Override + public int hashCode() { + return Objects.hash(alias, conditionalFormats, formula, limit, numberFormat, style); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridWidgetFormula {\n"); + sb.append(" alias: ").append(toIndentedString(alias)).append("\n"); + sb.append(" conditionalFormats: ").append(toIndentedString(conditionalFormats)).append("\n"); + sb.append(" formula: ").append(toIndentedString(formula)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" numberFormat: ").append(toIndentedString(numberFormat)).append("\n"); + sb.append(" style: ").append(toIndentedString(style)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetRequest.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetRequest.java new file mode 100644 index 00000000000..e2866231965 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetRequest.java @@ -0,0 +1,191 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** A request for a heatgrid widget that uses formulas and functions. */ +@JsonPropertyOrder({ + HeatgridWidgetRequest.JSON_PROPERTY_FORMULAS, + HeatgridWidgetRequest.JSON_PROPERTY_QUERIES, + HeatgridWidgetRequest.JSON_PROPERTY_RESPONSE_FORMAT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class HeatgridWidgetRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FORMULAS = "formulas"; + private List formulas = null; + + public static final String JSON_PROPERTY_QUERIES = "queries"; + private List queries = new ArrayList<>(); + + public static final String JSON_PROPERTY_RESPONSE_FORMAT = "response_format"; + private HeatgridWidgetResponseFormat responseFormat; + + public HeatgridWidgetRequest() {} + + @JsonCreator + public HeatgridWidgetRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_QUERIES) + List queries, + @JsonProperty(required = true, value = JSON_PROPERTY_RESPONSE_FORMAT) + HeatgridWidgetResponseFormat responseFormat) { + this.queries = queries; + for (FormulaAndFunctionQueryDefinition item : queries) { + this.unparsed |= item.unparsed; + } + this.responseFormat = responseFormat; + this.unparsed |= !responseFormat.isValid(); + } + + public HeatgridWidgetRequest formulas(List formulas) { + this.formulas = formulas; + if (formulas != null) { + for (HeatgridWidgetFormula item : formulas) { + this.unparsed |= item.unparsed; + } + } + return this; + } + + public HeatgridWidgetRequest addFormulasItem(HeatgridWidgetFormula formulasItem) { + if (this.formulas == null) { + this.formulas = new ArrayList<>(); + } + this.formulas.add(formulasItem); + this.unparsed |= formulasItem.unparsed; + return this; + } + + /** + * The single displayed formula can combine multiple queries. + * + * @return formulas + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FORMULAS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getFormulas() { + return formulas; + } + + public void setFormulas(List formulas) { + this.formulas = formulas; + if (formulas != null) { + for (HeatgridWidgetFormula item : formulas) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridWidgetRequest queries(List queries) { + this.queries = queries; + for (FormulaAndFunctionQueryDefinition item : queries) { + this.unparsed |= item.unparsed; + } + return this; + } + + public HeatgridWidgetRequest addQueriesItem(FormulaAndFunctionQueryDefinition queriesItem) { + this.queries.add(queriesItem); + this.unparsed |= queriesItem.unparsed; + return this; + } + + /** + * Queries returned directly or combined in a formula. + * + * @return queries + */ + @JsonProperty(JSON_PROPERTY_QUERIES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getQueries() { + return queries; + } + + public void setQueries(List queries) { + this.queries = queries; + if (queries != null) { + for (FormulaAndFunctionQueryDefinition item : queries) { + this.unparsed |= item.unparsed; + } + } + } + + public HeatgridWidgetRequest responseFormat(HeatgridWidgetResponseFormat responseFormat) { + this.responseFormat = responseFormat; + this.unparsed |= !responseFormat.isValid(); + return this; + } + + /** + * Response format for heatgrid queries. + * + * @return responseFormat + */ + @JsonProperty(JSON_PROPERTY_RESPONSE_FORMAT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public HeatgridWidgetResponseFormat getResponseFormat() { + return responseFormat; + } + + public void setResponseFormat(HeatgridWidgetResponseFormat responseFormat) { + if (!responseFormat.isValid()) { + this.unparsed = true; + } + this.responseFormat = responseFormat; + } + + /** Return true if this HeatgridWidgetRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HeatgridWidgetRequest heatgridWidgetRequest = (HeatgridWidgetRequest) o; + return Objects.equals(this.formulas, heatgridWidgetRequest.formulas) + && Objects.equals(this.queries, heatgridWidgetRequest.queries) + && Objects.equals(this.responseFormat, heatgridWidgetRequest.responseFormat); + } + + @Override + public int hashCode() { + return Objects.hash(formulas, queries, responseFormat); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HeatgridWidgetRequest {\n"); + sb.append(" formulas: ").append(toIndentedString(formulas)).append("\n"); + sb.append(" queries: ").append(toIndentedString(queries)).append("\n"); + sb.append(" responseFormat: ").append(toIndentedString(responseFormat)).append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetResponseFormat.java b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetResponseFormat.java new file mode 100644 index 00000000000..ef9ed483838 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/HeatgridWidgetResponseFormat.java @@ -0,0 +1,56 @@ +/* + * 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. + */ + +package com.datadog.api.client.v1.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Response format for heatgrid queries. */ +@JsonSerialize(using = HeatgridWidgetResponseFormat.HeatgridWidgetResponseFormatSerializer.class) +public class HeatgridWidgetResponseFormat extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("timeseries")); + + public static final HeatgridWidgetResponseFormat TIMESERIES = + new HeatgridWidgetResponseFormat("timeseries"); + + HeatgridWidgetResponseFormat(String value) { + super(value, allowedValues); + } + + public static class HeatgridWidgetResponseFormatSerializer + extends StdSerializer { + public HeatgridWidgetResponseFormatSerializer(Class t) { + super(t); + } + + public HeatgridWidgetResponseFormatSerializer() { + this(null); + } + + @Override + public void serialize( + HeatgridWidgetResponseFormat value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static HeatgridWidgetResponseFormat fromValue(String value) { + return new HeatgridWidgetResponseFormat(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/WidgetDefinition.java b/src/main/java/com/datadog/api/client/v1/model/WidgetDefinition.java index ff80af69fb4..4e27489c5aa 100644 --- a/src/main/java/com/datadog/api/client/v1/model/WidgetDefinition.java +++ b/src/main/java/com/datadog/api/client/v1/model/WidgetDefinition.java @@ -758,6 +758,51 @@ public WidgetDefinition deserialize(JsonParser jp, DeserializationContext ctxt) log.log(Level.FINER, "Input data does not match schema 'GroupWidgetDefinition'", e); } + // deserialize HeatgridWidgetDefinition + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (HeatgridWidgetDefinition.class.equals(Integer.class) + || HeatgridWidgetDefinition.class.equals(Long.class) + || HeatgridWidgetDefinition.class.equals(Float.class) + || HeatgridWidgetDefinition.class.equals(Double.class) + || HeatgridWidgetDefinition.class.equals(Boolean.class) + || HeatgridWidgetDefinition.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((HeatgridWidgetDefinition.class.equals(Integer.class) + || HeatgridWidgetDefinition.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((HeatgridWidgetDefinition.class.equals(Float.class) + || HeatgridWidgetDefinition.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (HeatgridWidgetDefinition.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (HeatgridWidgetDefinition.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(HeatgridWidgetDefinition.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((HeatgridWidgetDefinition) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'HeatgridWidgetDefinition'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'HeatgridWidgetDefinition'", e); + } + // deserialize HeatMapWidgetDefinition try { boolean attemptParsing = true; @@ -2080,6 +2125,11 @@ public WidgetDefinition(GroupWidgetDefinition o) { setActualInstance(o); } + public WidgetDefinition(HeatgridWidgetDefinition o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public WidgetDefinition(HeatMapWidgetDefinition o) { super("oneOf", Boolean.FALSE); setActualInstance(o); @@ -2234,6 +2284,7 @@ public WidgetDefinition(WildcardWidgetDefinition o) { new GenericType() {}); schemas.put("GeomapWidgetDefinition", new GenericType() {}); schemas.put("GroupWidgetDefinition", new GenericType() {}); + schemas.put("HeatgridWidgetDefinition", new GenericType() {}); schemas.put("HeatMapWidgetDefinition", new GenericType() {}); schemas.put("HostMapWidgetDefinition", new GenericType() {}); schemas.put("IFrameWidgetDefinition", new GenericType() {}); @@ -2279,16 +2330,16 @@ public Map getSchemas() { * CohortWidgetDefinition, DistributionWidgetDefinition, EmbeddedAppWidgetDefinition, * EventStreamWidgetDefinition, EventTimelineWidgetDefinition, FreeTextWidgetDefinition, * FunnelWidgetDefinition, ProductAnalyticsFunnelWidgetDefinition, GeomapWidgetDefinition, - * GroupWidgetDefinition, HeatMapWidgetDefinition, HostMapWidgetDefinition, - * IFrameWidgetDefinition, ImageWidgetDefinition, ListStreamWidgetDefinition, - * LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, NoteWidgetDefinition, - * PowerpackWidgetDefinition, PointPlotWidgetDefinition, QueryValueWidgetDefinition, - * RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, SLOListWidgetDefinition, - * SLOWidgetDefinition, ScatterPlotWidgetDefinition, SankeyWidgetDefinition, - * ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, - * SunburstWidgetDefinition, TableWidgetDefinition, TimeseriesWidgetDefinition, - * ToplistWidgetDefinition, TopologyMapWidgetDefinition, TreeMapWidgetDefinition, - * WildcardWidgetDefinition + * GroupWidgetDefinition, HeatgridWidgetDefinition, HeatMapWidgetDefinition, + * HostMapWidgetDefinition, IFrameWidgetDefinition, ImageWidgetDefinition, + * ListStreamWidgetDefinition, LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, + * NoteWidgetDefinition, PowerpackWidgetDefinition, PointPlotWidgetDefinition, + * QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, + * SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, + * SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, + * SplitGraphWidgetDefinition, SunburstWidgetDefinition, TableWidgetDefinition, + * TimeseriesWidgetDefinition, ToplistWidgetDefinition, TopologyMapWidgetDefinition, + * TreeMapWidgetDefinition, WildcardWidgetDefinition * *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a * composed schema (allOf, anyOf, oneOf). @@ -2356,6 +2407,10 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf(HeatgridWidgetDefinition.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf(HeatMapWidgetDefinition.class, instance, new HashSet>())) { super.setActualInstance(instance); return; @@ -2479,10 +2534,11 @@ public void setActualInstance(Object instance) { + " EventStreamWidgetDefinition, EventTimelineWidgetDefinition," + " FreeTextWidgetDefinition, FunnelWidgetDefinition," + " ProductAnalyticsFunnelWidgetDefinition, GeomapWidgetDefinition," - + " GroupWidgetDefinition, HeatMapWidgetDefinition, HostMapWidgetDefinition," - + " IFrameWidgetDefinition, ImageWidgetDefinition, ListStreamWidgetDefinition," - + " LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, NoteWidgetDefinition," - + " PowerpackWidgetDefinition, PointPlotWidgetDefinition, QueryValueWidgetDefinition," + + " GroupWidgetDefinition, HeatgridWidgetDefinition, HeatMapWidgetDefinition," + + " HostMapWidgetDefinition, IFrameWidgetDefinition, ImageWidgetDefinition," + + " ListStreamWidgetDefinition, LogStreamWidgetDefinition," + + " MonitorSummaryWidgetDefinition, NoteWidgetDefinition, PowerpackWidgetDefinition," + + " PointPlotWidgetDefinition, QueryValueWidgetDefinition," + " RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition," + " SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition," + " SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition," @@ -2497,32 +2553,32 @@ public void setActualInstance(Object instance) { * CheckStatusWidgetDefinition, CohortWidgetDefinition, DistributionWidgetDefinition, * EmbeddedAppWidgetDefinition, EventStreamWidgetDefinition, EventTimelineWidgetDefinition, * FreeTextWidgetDefinition, FunnelWidgetDefinition, ProductAnalyticsFunnelWidgetDefinition, - * GeomapWidgetDefinition, GroupWidgetDefinition, HeatMapWidgetDefinition, - * HostMapWidgetDefinition, IFrameWidgetDefinition, ImageWidgetDefinition, - * ListStreamWidgetDefinition, LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, - * NoteWidgetDefinition, PowerpackWidgetDefinition, PointPlotWidgetDefinition, - * QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, - * SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, - * SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, - * SplitGraphWidgetDefinition, SunburstWidgetDefinition, TableWidgetDefinition, - * TimeseriesWidgetDefinition, ToplistWidgetDefinition, TopologyMapWidgetDefinition, - * TreeMapWidgetDefinition, WildcardWidgetDefinition + * GeomapWidgetDefinition, GroupWidgetDefinition, HeatgridWidgetDefinition, + * HeatMapWidgetDefinition, HostMapWidgetDefinition, IFrameWidgetDefinition, + * ImageWidgetDefinition, ListStreamWidgetDefinition, LogStreamWidgetDefinition, + * MonitorSummaryWidgetDefinition, NoteWidgetDefinition, PowerpackWidgetDefinition, + * PointPlotWidgetDefinition, QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, + * RunWorkflowWidgetDefinition, SLOListWidgetDefinition, SLOWidgetDefinition, + * ScatterPlotWidgetDefinition, SankeyWidgetDefinition, ServiceMapWidgetDefinition, + * ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, SunburstWidgetDefinition, + * TableWidgetDefinition, TimeseriesWidgetDefinition, ToplistWidgetDefinition, + * TopologyMapWidgetDefinition, TreeMapWidgetDefinition, WildcardWidgetDefinition * * @return The actual instance (AlertGraphWidgetDefinition, AlertValueWidgetDefinition, * BarChartWidgetDefinition, ChangeWidgetDefinition, CheckStatusWidgetDefinition, * CohortWidgetDefinition, DistributionWidgetDefinition, EmbeddedAppWidgetDefinition, * EventStreamWidgetDefinition, EventTimelineWidgetDefinition, FreeTextWidgetDefinition, * FunnelWidgetDefinition, ProductAnalyticsFunnelWidgetDefinition, GeomapWidgetDefinition, - * GroupWidgetDefinition, HeatMapWidgetDefinition, HostMapWidgetDefinition, - * IFrameWidgetDefinition, ImageWidgetDefinition, ListStreamWidgetDefinition, - * LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, NoteWidgetDefinition, - * PowerpackWidgetDefinition, PointPlotWidgetDefinition, QueryValueWidgetDefinition, - * RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, SLOListWidgetDefinition, - * SLOWidgetDefinition, ScatterPlotWidgetDefinition, SankeyWidgetDefinition, - * ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, - * SunburstWidgetDefinition, TableWidgetDefinition, TimeseriesWidgetDefinition, - * ToplistWidgetDefinition, TopologyMapWidgetDefinition, TreeMapWidgetDefinition, - * WildcardWidgetDefinition) + * GroupWidgetDefinition, HeatgridWidgetDefinition, HeatMapWidgetDefinition, + * HostMapWidgetDefinition, IFrameWidgetDefinition, ImageWidgetDefinition, + * ListStreamWidgetDefinition, LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, + * NoteWidgetDefinition, PowerpackWidgetDefinition, PointPlotWidgetDefinition, + * QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, + * SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, + * SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, + * SplitGraphWidgetDefinition, SunburstWidgetDefinition, TableWidgetDefinition, + * TimeseriesWidgetDefinition, ToplistWidgetDefinition, TopologyMapWidgetDefinition, + * TreeMapWidgetDefinition, WildcardWidgetDefinition) */ @Override public Object getActualInstance() { @@ -2696,6 +2752,17 @@ public GroupWidgetDefinition getGroupWidgetDefinition() throws ClassCastExceptio return (GroupWidgetDefinition) super.getActualInstance(); } + /** + * Get the actual instance of `HeatgridWidgetDefinition`. If the actual instance is not + * `HeatgridWidgetDefinition`, the ClassCastException will be thrown. + * + * @return The actual instance of `HeatgridWidgetDefinition` + * @throws ClassCastException if the instance is not `HeatgridWidgetDefinition` + */ + public HeatgridWidgetDefinition getHeatgridWidgetDefinition() throws ClassCastException { + return (HeatgridWidgetDefinition) super.getActualInstance(); + } + /** * Get the actual instance of `HeatMapWidgetDefinition`. If the actual instance is not * `HeatMapWidgetDefinition`, the ClassCastException will be thrown. diff --git a/src/test/resources/com/datadog/api/client/v1/api/dashboards.feature b/src/test/resources/com/datadog/api/client/v1/api/dashboards.feature index 0025051913b..be692203596 100644 --- a/src/test/resources/com/datadog/api/client/v1/api/dashboards.feature +++ b/src/test/resources/com/datadog/api/client/v1/api/dashboards.feature @@ -87,6 +87,66 @@ Feature: Dashboards And the response "widgets[0].definition.requests[1].text_formats[0].palette" is equal to "white_on_red" And the response "widgets[0].definition.view.focus" is equal to "NORTH_AMERICA" + @team:ddoghq/dashboards-backend + Scenario: Create a heatgrid widget with a preset gradient + Given new "CreateDashboard" request + And body with value {"title": "{{ unique }}", "layout_type": "ordered", "widgets": [{"definition": {"type": "heatgrid", "requests": [{"response_format": "timeseries", "queries": [{"data_source": "metrics", "name": "query1", "query": "avg:system.cpu.user{*} by {host}"}], "formulas": [{"formula": "query1"}]}], "sort": {"nesting_display": "flat", "sort_by": {"property": "value", "order": "desc", "aggregation": "avg"}}, "color": {"mode": "gradient", "source": "preset", "preset_name": "classic"}, "legend": {"show_caption": true}, "label_column": {"width": "m"}}}]} + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "heatgrid" + And the response "widgets[0].definition.color.mode" is equal to "gradient" + And the response "widgets[0].definition.color.source" is equal to "preset" + And the response "widgets[0].definition.color.preset_name" is equal to "classic" + And the response "widgets[0].definition.sort.nesting_display" is equal to "flat" + And the response "widgets[0].definition.sort.sort_by.property" is equal to "value" + And the response "widgets[0].definition.sort.sort_by.order" is equal to "desc" + And the response "widgets[0].definition.sort.sort_by.aggregation" is equal to "avg" + And the response "widgets[0].definition.legend.show_caption" is equal to true + And the response "widgets[0].definition.label_column.width" is equal to "m" + + @team:ddoghq/dashboards-backend + Scenario: Create a heatgrid widget with custom discrete thresholds + Given new "CreateDashboard" request + And body with value {"title": "{{ unique }}", "layout_type": "ordered", "widgets": [{"definition": {"type": "heatgrid", "requests": [{"response_format": "timeseries", "queries": [{"data_source": "metrics", "name": "query1", "query": "avg:system.cpu.user{*} by {host}"}], "formulas": [{"formula": "query1"}]}], "sort": {"nesting_display": "flat", "sort_by": {"property": "label", "order": "asc"}}, "color": {"mode": "discrete", "source": "custom", "bins": [{"color": "#00FF00"}, {"color": "#FF0000", "lower_bound": 80}]}, "legend": {"show_caption": true}, "label_column": {"width": "m"}}}]} + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "heatgrid" + And the response "widgets[0].definition.color.mode" is equal to "discrete" + And the response "widgets[0].definition.color.source" is equal to "custom" + And the response "widgets[0].definition.color.bins" has length 2 + And the response "widgets[0].definition.color.bins[0].color" is equal to "#00FF00" + And the response "widgets[0].definition.color.bins[1].color" is equal to "#FF0000" + And the response "widgets[0].definition.color.bins[1].lower_bound" is equal to 80 + And the response "widgets[0].definition.color.bins[0]" does not have field "lower_bound" + And the response "widgets[0].definition.sort.nesting_display" is equal to "flat" + And the response "widgets[0].definition.sort.sort_by.property" is equal to "label" + And the response "widgets[0].definition.sort.sort_by.order" is equal to "asc" + And the response "widgets[0].definition.legend.show_caption" is equal to true + And the response "widgets[0].definition.label_column.width" is equal to "m" + + @team:ddoghq/dashboards-backend + Scenario: Create a heatgrid widget with custom gradient colors for both themes + Given new "CreateDashboard" request + And body with value {"title": "{{ unique }}", "layout_type": "ordered", "widgets": [{"definition": {"type": "heatgrid", "requests": [{"response_format": "timeseries", "queries": [{"data_source": "metrics", "name": "query1", "query": "avg:system.cpu.user{*} by {host}"}], "formulas": [{"formula": "query1"}]}], "sort": {"nesting_display": "flat", "sort_by": {"property": "value", "order": "desc", "aggregation": "avg"}}, "color": {"mode": "gradient", "source": "custom", "stops": [{"position": 0, "color": ["#FFFFFF", "#000000"]}, {"position": 100, "color": "#FF0000"}]}, "legend": {"show_caption": true}, "label_column": {"width": "m"}}}]} + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "heatgrid" + And the response "widgets[0].definition.color.mode" is equal to "gradient" + And the response "widgets[0].definition.color.source" is equal to "custom" + And the response "widgets[0].definition.color.stops" has length 2 + And the response "widgets[0].definition.color.stops[0].position" is equal to 0 + And the response "widgets[0].definition.color.stops[0].color" has length 2 + And the response "widgets[0].definition.color.stops[0].color[0]" is equal to "#FFFFFF" + And the response "widgets[0].definition.color.stops[0].color[1]" is equal to "#000000" + And the response "widgets[0].definition.color.stops[1].position" is equal to 100 + And the response "widgets[0].definition.color.stops[1].color" is equal to "#FF0000" + And the response "widgets[0].definition.sort.nesting_display" is equal to "flat" + And the response "widgets[0].definition.sort.sort_by.property" is equal to "value" + And the response "widgets[0].definition.sort.sort_by.order" is equal to "desc" + And the response "widgets[0].definition.sort.sort_by.aggregation" is equal to "avg" + And the response "widgets[0].definition.legend.show_caption" is equal to true + And the response "widgets[0].definition.label_column.width" is equal to "m" + @generated @skip @team:ddoghq/dashboards-backend Scenario: Create a new dashboard returns "Bad Request" response Given new "CreateDashboard" request diff --git a/src/test/resources/generated-test/test-runner-data/manifest.json b/src/test/resources/generated-test/test-runner-data/manifest.json index e054ee8b488..50f2dac7a29 100644 --- a/src/test/resources/generated-test/test-runner-data/manifest.json +++ b/src/test/resources/generated-test/test-runner-data/manifest.json @@ -154,6 +154,27 @@ "scenario": "Create a geomap widget with conditional formats and text formats", "version": "v1" }, + { + "feature": "Dashboards", + "feature_file": "../../com/datadog/api/client/v1/api/dashboards.feature", + "file": "v1/dashboards/create-a-heatgrid-widget-with-a-preset-gradient.json", + "scenario": "Create a heatgrid widget with a preset gradient", + "version": "v1" + }, + { + "feature": "Dashboards", + "feature_file": "../../com/datadog/api/client/v1/api/dashboards.feature", + "file": "v1/dashboards/create-a-heatgrid-widget-with-custom-discrete-thresholds.json", + "scenario": "Create a heatgrid widget with custom discrete thresholds", + "version": "v1" + }, + { + "feature": "Dashboards", + "feature_file": "../../com/datadog/api/client/v1/api/dashboards.feature", + "file": "v1/dashboards/create-a-heatgrid-widget-with-custom-gradient-colors-for-both-themes.json", + "scenario": "Create a heatgrid widget with custom gradient colors for both themes", + "version": "v1" + }, { "feature": "Dashboards", "feature_file": "../../com/datadog/api/client/v1/api/dashboards.feature", diff --git a/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-a-preset-gradient.json b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-a-preset-gradient.json new file mode 100644 index 00000000000..730998783f0 --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-a-preset-gradient.json @@ -0,0 +1,72 @@ +{ + "api": "Dashboards", + "expected_status": 200, + "feature": "Dashboards", + "id": "v1/Dashboards/Create a heatgrid widget with a preset gradient", + "operation_id": "CreateDashboard", + "request": { + "body": { + "schema": { + "format": null, + "ref": "Dashboard", + "type": "object" + }, + "source": "inline", + "value": { + "layout_type": "ordered", + "title": "{{ unique }}", + "widgets": [ + { + "definition": { + "color": { + "mode": "gradient", + "preset_name": "classic", + "source": "preset" + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "aggregation": "avg", + "order": "desc", + "property": "value" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v1/dashboard" + }, + "scenario": "Create a heatgrid widget with a preset gradient", + "schema_version": 1, + "version": "v1" +} diff --git a/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-discrete-thresholds.json b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-discrete-thresholds.json new file mode 100644 index 00000000000..a21fef5d5d4 --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-discrete-thresholds.json @@ -0,0 +1,79 @@ +{ + "api": "Dashboards", + "expected_status": 200, + "feature": "Dashboards", + "id": "v1/Dashboards/Create a heatgrid widget with custom discrete thresholds", + "operation_id": "CreateDashboard", + "request": { + "body": { + "schema": { + "format": null, + "ref": "Dashboard", + "type": "object" + }, + "source": "inline", + "value": { + "layout_type": "ordered", + "title": "{{ unique }}", + "widgets": [ + { + "definition": { + "color": { + "bins": [ + { + "color": "#00FF00" + }, + { + "color": "#FF0000", + "lower_bound": 80 + } + ], + "mode": "discrete", + "source": "custom" + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "order": "asc", + "property": "label" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v1/dashboard" + }, + "scenario": "Create a heatgrid widget with custom discrete thresholds", + "schema_version": 1, + "version": "v1" +} diff --git a/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-gradient-colors-for-both-themes.json b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-gradient-colors-for-both-themes.json new file mode 100644 index 00000000000..86d24a6e157 --- /dev/null +++ b/src/test/resources/generated-test/test-runner-data/v1/dashboards/create-a-heatgrid-widget-with-custom-gradient-colors-for-both-themes.json @@ -0,0 +1,84 @@ +{ + "api": "Dashboards", + "expected_status": 200, + "feature": "Dashboards", + "id": "v1/Dashboards/Create a heatgrid widget with custom gradient colors for both themes", + "operation_id": "CreateDashboard", + "request": { + "body": { + "schema": { + "format": null, + "ref": "Dashboard", + "type": "object" + }, + "source": "inline", + "value": { + "layout_type": "ordered", + "title": "{{ unique }}", + "widgets": [ + { + "definition": { + "color": { + "mode": "gradient", + "source": "custom", + "stops": [ + { + "color": [ + "#FFFFFF", + "#000000" + ], + "position": 0 + }, + { + "color": "#FF0000", + "position": 100 + } + ] + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "aggregation": "avg", + "order": "desc", + "property": "value" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v1/dashboard" + }, + "scenario": "Create a heatgrid widget with custom gradient colors for both themes", + "schema_version": 1, + "version": "v1" +} diff --git a/src/test/resources/generated-test/test-server-data/v1/dashboards.json b/src/test/resources/generated-test/test-server-data/v1/dashboards.json index 7c47fc45411..30239698c4b 100644 --- a/src/test/resources/generated-test/test-server-data/v1/dashboards.json +++ b/src/test/resources/generated-test/test-server-data/v1/dashboards.json @@ -696,6 +696,325 @@ "scenario": "Create a geomap widget with conditional formats and text formats", "version": "v1" }, + { + "feature": "Dashboards", + "frozen_at": "2026-10-08T20:45:28.713Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "layout_type": "ordered", + "title": "Test-Create_a_heatgrid_widget_with_a_preset_gradient-1791492328", + "widgets": [ + { + "definition": { + "color": { + "mode": "gradient", + "preset_name": "classic", + "source": "preset" + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "aggregation": "avg", + "order": "desc", + "property": "value" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v1/dashboard", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"id\":\"rws-u2c-xjn\",\"title\":\"Test-Create_a_heatgrid_widget_with_a_preset_gradient-1791492328\",\"description\":null,\"author_handle\":\"test@example.com\",\"author_name\":\"Test User\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/rws-u2c-xjn/test-createaheatgridwidgetwithapresetgradient-1791492328\",\"template_variables\":null,\"widgets\":[{\"definition\":{\"color\":{\"mode\":\"gradient\",\"preset_name\":\"classic\",\"source\":\"preset\"},\"label_column\":{\"width\":\"m\"},\"legend\":{\"show_caption\":true},\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}],\"response_format\":\"timeseries\"}],\"sort\":{\"nesting_display\":\"flat\",\"sort_by\":{\"aggregation\":\"avg\",\"order\":\"desc\",\"property\":\"value\"}},\"type\":\"heatgrid\"},\"id\":703699353428571}],\"notify_list\":null,\"created_at\":\"2026-10-08T20:45:28.947012+00:00\",\"modified_at\":\"2026-10-08T20:45:28.947012+00:00\",\"experience_type\":\"default\",\"restricted_roles\":[]}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v1/dashboard/rws-u2c-xjn", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"deleted_dashboard_id\":\"rws-u2c-xjn\"}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Create a heatgrid widget with a preset gradient", + "version": "v1" + }, + { + "feature": "Dashboards", + "frozen_at": "2026-10-08T20:45:29.961Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "layout_type": "ordered", + "title": "Test-Create_a_heatgrid_widget_with_custom_discrete_thresholds-1791492329", + "widgets": [ + { + "definition": { + "color": { + "bins": [ + { + "color": "#00FF00" + }, + { + "color": "#FF0000", + "lower_bound": 80 + } + ], + "mode": "discrete", + "source": "custom" + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "order": "asc", + "property": "label" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v1/dashboard", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"id\":\"6sq-avw-idr\",\"title\":\"Test-Create_a_heatgrid_widget_with_custom_discrete_thresholds-1791492329\",\"description\":null,\"author_handle\":\"test@example.com\",\"author_name\":\"Test User\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/6sq-avw-idr/test-createaheatgridwidgetwithcustomdiscretethresholds-1791492329\",\"template_variables\":null,\"widgets\":[{\"definition\":{\"color\":{\"bins\":[{\"color\":\"#00FF00\"},{\"color\":\"#FF0000\",\"lower_bound\":80}],\"mode\":\"discrete\",\"source\":\"custom\"},\"label_column\":{\"width\":\"m\"},\"legend\":{\"show_caption\":true},\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}],\"response_format\":\"timeseries\"}],\"sort\":{\"nesting_display\":\"flat\",\"sort_by\":{\"order\":\"asc\",\"property\":\"label\"}},\"type\":\"heatgrid\"},\"id\":4032652334995696}],\"notify_list\":null,\"created_at\":\"2026-10-08T20:45:30.208364+00:00\",\"modified_at\":\"2026-10-08T20:45:30.208364+00:00\",\"experience_type\":\"default\",\"restricted_roles\":[]}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v1/dashboard/6sq-avw-idr", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"deleted_dashboard_id\":\"6sq-avw-idr\"}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Create a heatgrid widget with custom discrete thresholds", + "version": "v1" + }, + { + "feature": "Dashboards", + "frozen_at": "2026-10-08T20:45:31.220Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "layout_type": "ordered", + "title": "Test-Create_a_heatgrid_widget_with_custom_gradient_colors_for_both_themes-1791492331", + "widgets": [ + { + "definition": { + "color": { + "mode": "gradient", + "source": "custom", + "stops": [ + { + "color": [ + "#FFFFFF", + "#000000" + ], + "position": 0 + }, + { + "color": "#FF0000", + "position": 100 + } + ] + }, + "label_column": { + "width": "m" + }, + "legend": { + "show_caption": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{*} by {host}" + } + ], + "response_format": "timeseries" + } + ], + "sort": { + "nesting_display": "flat", + "sort_by": { + "aggregation": "avg", + "order": "desc", + "property": "value" + } + }, + "type": "heatgrid" + } + } + ] + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v1/dashboard", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"id\":\"p5v-36u-h29\",\"title\":\"Test-Create_a_heatgrid_widget_with_custom_gradient_colors_for_both_themes-1791492331\",\"description\":null,\"author_handle\":\"test@example.com\",\"author_name\":\"Test User\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/p5v-36u-h29/test-createaheatgridwidgetwithcustomgradientcolorsforboththemes-1791492331\",\"template_variables\":null,\"widgets\":[{\"definition\":{\"color\":{\"mode\":\"gradient\",\"source\":\"custom\",\"stops\":[{\"color\":[\"#FFFFFF\",\"#000000\"],\"position\":0},{\"color\":\"#FF0000\",\"position\":100}]},\"label_column\":{\"width\":\"m\"},\"legend\":{\"show_caption\":true},\"requests\":[{\"formulas\":[{\"formula\":\"query1\"}],\"queries\":[{\"data_source\":\"metrics\",\"name\":\"query1\",\"query\":\"avg:system.cpu.user{*} by {host}\"}],\"response_format\":\"timeseries\"}],\"sort\":{\"nesting_display\":\"flat\",\"sort_by\":{\"aggregation\":\"avg\",\"order\":\"desc\",\"property\":\"value\"}},\"type\":\"heatgrid\"},\"id\":4644010913884827}],\"notify_list\":null,\"created_at\":\"2026-10-08T20:45:31.439485+00:00\",\"modified_at\":\"2026-10-08T20:45:31.439485+00:00\",\"experience_type\":\"default\",\"restricted_roles\":[]}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + }, + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v1/dashboard/p5v-36u-h29", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"deleted_dashboard_id\":\"p5v-36u-h29\"}" + }, + "headers": { + "content-type": "application/json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Create a heatgrid widget with custom gradient colors for both themes", + "version": "v1" + }, { "feature": "Dashboards", "frozen_at": "2024-11-15T19:32:29.001Z",