From 63460ebcb234accc68b5ef3526449915b3166700 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 30 Apr 2026 19:19:06 +0000 Subject: [PATCH] Regenerate client from commit 8653a85 of spec repo --- .generator/schemas/v1/openapi.yaml | 177 +++++++ .../CreateDashboard_2049446128.java | 77 +++ .../client/v1/model/DataProjectionQuery.java | 237 +++++++++ .../v1/model/DataProjectionRequestType.java | 57 +++ .../client/v1/model/PointPlotDimension.java | 57 +++ .../client/v1/model/PointPlotProjection.java | 225 +++++++++ .../model/PointPlotProjectionDimension.java | 207 ++++++++ .../v1/model/PointPlotProjectionType.java | 56 ++ .../v1/model/PointPlotWidgetDefinition.java | 478 ++++++++++++++++++ .../model/PointPlotWidgetDefinitionType.java | 56 ++ .../v1/model/PointPlotWidgetLegend.java | 148 ++++++ .../v1/model/PointPlotWidgetLegendType.java | 58 +++ .../v1/model/PointPlotWidgetRequest.java | 239 +++++++++ .../api/client/v1/model/WidgetDefinition.java | 105 +++- ...ew_dashboard_with_point_plot_widget.freeze | 1 + ..._new_dashboard_with_point_plot_widget.json | 58 +++ .../api/client/v1/api/dashboards.feature | 12 + .../point_plot_widget.json | 36 ++ 18 files changed, 2265 insertions(+), 19 deletions(-) create mode 100644 examples/v1/dashboards/CreateDashboard_2049446128.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/DataProjectionQuery.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/DataProjectionRequestType.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotDimension.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotProjection.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionDimension.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionType.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinition.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinitionType.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegend.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegendType.java create mode 100644 src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetRequest.java create mode 100644 src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.freeze create mode 100644 src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.json create mode 100644 src/test/resources/com/datadog/api/client/v1/api/dashboards_json_payload/point_plot_widget.json diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 78d7e42b5b1..f3fc4e80ea6 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -1823,6 +1823,38 @@ components: x-enum-varnames: - CUSTOM_TIMEBOARD - CUSTOM_SCREENBOARD + DataProjectionQuery: + description: Query configuration for a data projection request. + properties: + data_source: + description: Data source for the query. + example: logs + type: string + indexes: + description: List of indexes to query. + items: + description: Index name. + type: string + type: array + query_string: + description: The query string to filter events. + example: "service:web-store" + type: string + storage: + description: Storage location for the query. + type: string + required: + - query_string + - data_source + type: object + DataProjectionRequestType: + description: Type of a data projection request. + enum: + - data_projection + example: data_projection + type: string + x-enum-varnames: + - DATA_PROJECTION DeleteSharedDashboardResponse: description: Response containing token of deleted shared dashboard. properties: @@ -11338,6 +11370,150 @@ components: maxItems: 2 minItems: 2 type: array + PointPlotDimension: + description: Dimension of the point plot. + enum: + - group + - time + - y + - radius + example: y + type: string + x-enum-varnames: + - GROUP + - TIME + - Y + - RADIUS + PointPlotProjection: + description: Projection configuration for the point plot widget. + properties: + dimensions: + description: List of dimension mappings for the projection. + items: + $ref: "#/components/schemas/PointPlotProjectionDimension" + type: array + extra_columns: + description: Additional columns to include in the projection. + items: + description: Column name. + type: string + type: array + type: + $ref: "#/components/schemas/PointPlotProjectionType" + required: + - type + - dimensions + type: object + PointPlotProjectionDimension: + description: Dimension mapping for the point plot projection. + properties: + alias: + description: Alias for the column. + type: string + column: + description: Source column name from the dataset. + example: duration + type: string + dimension: + $ref: "#/components/schemas/PointPlotDimension" + required: + - column + - dimension + type: object + PointPlotProjectionType: + description: Type of the projection. + enum: + - point_plot + example: point_plot + type: string + x-enum-varnames: + - POINT_PLOT + PointPlotWidgetDefinition: + description: The point plot displays individual data points over time. + properties: + custom_links: + description: List of custom links. + items: + $ref: "#/components/schemas/WidgetCustomLink" + type: array + description: + description: The description of the widget. + type: string + legend: + $ref: "#/components/schemas/PointPlotWidgetLegend" + markers: + description: List of markers for the widget. + items: + $ref: "#/components/schemas/WidgetMarker" + type: array + requests: + description: List of request configurations for the widget. + items: + $ref: "#/components/schemas/PointPlotWidgetRequest" + type: array + 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/PointPlotWidgetDefinitionType" + yaxis: + $ref: "#/components/schemas/WidgetAxis" + required: + - type + - requests + type: object + PointPlotWidgetDefinitionType: + default: point_plot + description: Type of the point plot widget. + enum: + - point_plot + example: point_plot + type: string + x-enum-varnames: + - POINT_PLOT + PointPlotWidgetLegend: + description: Legend configuration for the point plot widget. + properties: + type: + $ref: "#/components/schemas/PointPlotWidgetLegendType" + required: + - type + type: object + PointPlotWidgetLegendType: + description: Type of legend to show for the point plot widget. + enum: + - automatic + - none + example: automatic + type: string + x-enum-varnames: + - AUTOMATIC + - NONE + PointPlotWidgetRequest: + description: Request configuration for the point plot widget. + properties: + limit: + description: Maximum number of data points to return. + format: int64 + type: integer + projection: + $ref: "#/components/schemas/PointPlotProjection" + query: + $ref: "#/components/schemas/DataProjectionQuery" + request_type: + $ref: "#/components/schemas/DataProjectionRequestType" + required: + - request_type + - query + - projection + type: object PowerpackTemplateVariableContents: description: Powerpack template variable contents. properties: @@ -25604,6 +25780,7 @@ components: - $ref: "#/components/schemas/MonitorSummaryWidgetDefinition" - $ref: "#/components/schemas/NoteWidgetDefinition" - $ref: "#/components/schemas/PowerpackWidgetDefinition" + - $ref: "#/components/schemas/PointPlotWidgetDefinition" - $ref: "#/components/schemas/QueryValueWidgetDefinition" - $ref: "#/components/schemas/RetentionCurveWidgetDefinition" - $ref: "#/components/schemas/RunWorkflowWidgetDefinition" diff --git a/examples/v1/dashboards/CreateDashboard_2049446128.java b/examples/v1/dashboards/CreateDashboard_2049446128.java new file mode 100644 index 00000000000..7da8ae31d51 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_2049446128.java @@ -0,0 +1,77 @@ +// Create a new dashboard with point_plot widget + +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.DataProjectionQuery; +import com.datadog.api.client.v1.model.DataProjectionRequestType; +import com.datadog.api.client.v1.model.PointPlotDimension; +import com.datadog.api.client.v1.model.PointPlotProjection; +import com.datadog.api.client.v1.model.PointPlotProjectionDimension; +import com.datadog.api.client.v1.model.PointPlotProjectionType; +import com.datadog.api.client.v1.model.PointPlotWidgetDefinition; +import com.datadog.api.client.v1.model.PointPlotWidgetDefinitionType; +import com.datadog.api.client.v1.model.PointPlotWidgetRequest; +import com.datadog.api.client.v1.model.Widget; +import com.datadog.api.client.v1.model.WidgetDefinition; +import com.datadog.api.client.v1.model.WidgetTextAlign; +import java.util.Arrays; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + DashboardsApi apiInstance = new DashboardsApi(defaultClient); + + Dashboard body = + new Dashboard() + .title("Example-Dashboard") + .layoutType(DashboardLayoutType.ORDERED) + .widgets( + Collections.singletonList( + new Widget() + .definition( + new WidgetDefinition( + new PointPlotWidgetDefinition() + .title("") + .titleSize("16") + .titleAlign(WidgetTextAlign.LEFT) + .type(PointPlotWidgetDefinitionType.POINT_PLOT) + .requests( + Collections.singletonList( + new PointPlotWidgetRequest() + .requestType( + DataProjectionRequestType.DATA_PROJECTION) + .query( + new DataProjectionQuery() + .queryString("service:web-store") + .dataSource("logs")) + .projection( + new PointPlotProjection() + .type(PointPlotProjectionType.POINT_PLOT) + .dimensions( + Arrays.asList( + new PointPlotProjectionDimension() + .column("host") + .dimension( + PointPlotDimension.GROUP), + new PointPlotProjectionDimension() + .column("@duration") + .dimension( + PointPlotDimension + .Y)))))))))); + + 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/DataProjectionQuery.java b/src/main/java/com/datadog/api/client/v1/model/DataProjectionQuery.java new file mode 100644 index 00000000000..68aa675d09c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/DataProjectionQuery.java @@ -0,0 +1,237 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Query configuration for a data projection request. */ +@JsonPropertyOrder({ + DataProjectionQuery.JSON_PROPERTY_DATA_SOURCE, + DataProjectionQuery.JSON_PROPERTY_INDEXES, + DataProjectionQuery.JSON_PROPERTY_QUERY_STRING, + DataProjectionQuery.JSON_PROPERTY_STORAGE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class DataProjectionQuery { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA_SOURCE = "data_source"; + private String dataSource; + + public static final String JSON_PROPERTY_INDEXES = "indexes"; + private List indexes = null; + + public static final String JSON_PROPERTY_QUERY_STRING = "query_string"; + private String queryString; + + public static final String JSON_PROPERTY_STORAGE = "storage"; + private String storage; + + public DataProjectionQuery() {} + + @JsonCreator + public DataProjectionQuery( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA_SOURCE) String dataSource, + @JsonProperty(required = true, value = JSON_PROPERTY_QUERY_STRING) String queryString) { + this.dataSource = dataSource; + this.queryString = queryString; + } + + public DataProjectionQuery dataSource(String dataSource) { + this.dataSource = dataSource; + return this; + } + + /** + * Data source for the query. + * + * @return dataSource + */ + @JsonProperty(JSON_PROPERTY_DATA_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDataSource() { + return dataSource; + } + + public void setDataSource(String dataSource) { + this.dataSource = dataSource; + } + + public DataProjectionQuery indexes(List indexes) { + this.indexes = indexes; + return this; + } + + public DataProjectionQuery addIndexesItem(String indexesItem) { + if (this.indexes == null) { + this.indexes = new ArrayList<>(); + } + this.indexes.add(indexesItem); + return this; + } + + /** + * List of indexes to query. + * + * @return indexes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INDEXES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getIndexes() { + return indexes; + } + + public void setIndexes(List indexes) { + this.indexes = indexes; + } + + public DataProjectionQuery queryString(String queryString) { + this.queryString = queryString; + return this; + } + + /** + * The query string to filter events. + * + * @return queryString + */ + @JsonProperty(JSON_PROPERTY_QUERY_STRING) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQueryString() { + return queryString; + } + + public void setQueryString(String queryString) { + this.queryString = queryString; + } + + public DataProjectionQuery storage(String storage) { + this.storage = storage; + return this; + } + + /** + * Storage location for the query. + * + * @return storage + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STORAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getStorage() { + return storage; + } + + public void setStorage(String storage) { + this.storage = storage; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return DataProjectionQuery + */ + @JsonAnySetter + public DataProjectionQuery putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this DataProjectionQuery object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DataProjectionQuery dataProjectionQuery = (DataProjectionQuery) o; + return Objects.equals(this.dataSource, dataProjectionQuery.dataSource) + && Objects.equals(this.indexes, dataProjectionQuery.indexes) + && Objects.equals(this.queryString, dataProjectionQuery.queryString) + && Objects.equals(this.storage, dataProjectionQuery.storage) + && Objects.equals(this.additionalProperties, dataProjectionQuery.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(dataSource, indexes, queryString, storage, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DataProjectionQuery {\n"); + sb.append(" dataSource: ").append(toIndentedString(dataSource)).append("\n"); + sb.append(" indexes: ").append(toIndentedString(indexes)).append("\n"); + sb.append(" queryString: ").append(toIndentedString(queryString)).append("\n"); + sb.append(" storage: ").append(toIndentedString(storage)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/DataProjectionRequestType.java b/src/main/java/com/datadog/api/client/v1/model/DataProjectionRequestType.java new file mode 100644 index 00000000000..2b8994e2811 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/DataProjectionRequestType.java @@ -0,0 +1,57 @@ +/* + * 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 a data projection request. */ +@JsonSerialize(using = DataProjectionRequestType.DataProjectionRequestTypeSerializer.class) +public class DataProjectionRequestType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("data_projection")); + + public static final DataProjectionRequestType DATA_PROJECTION = + new DataProjectionRequestType("data_projection"); + + DataProjectionRequestType(String value) { + super(value, allowedValues); + } + + public static class DataProjectionRequestTypeSerializer + extends StdSerializer { + public DataProjectionRequestTypeSerializer(Class t) { + super(t); + } + + public DataProjectionRequestTypeSerializer() { + this(null); + } + + @Override + public void serialize( + DataProjectionRequestType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static DataProjectionRequestType fromValue(String value) { + return new DataProjectionRequestType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/PointPlotDimension.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotDimension.java new file mode 100644 index 00000000000..5c17b8bec24 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotDimension.java @@ -0,0 +1,57 @@ +/* + * 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; + +/** Dimension of the point plot. */ +@JsonSerialize(using = PointPlotDimension.PointPlotDimensionSerializer.class) +public class PointPlotDimension extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("group", "time", "y", "radius")); + + public static final PointPlotDimension GROUP = new PointPlotDimension("group"); + public static final PointPlotDimension TIME = new PointPlotDimension("time"); + public static final PointPlotDimension Y = new PointPlotDimension("y"); + public static final PointPlotDimension RADIUS = new PointPlotDimension("radius"); + + PointPlotDimension(String value) { + super(value, allowedValues); + } + + public static class PointPlotDimensionSerializer extends StdSerializer { + public PointPlotDimensionSerializer(Class t) { + super(t); + } + + public PointPlotDimensionSerializer() { + this(null); + } + + @Override + public void serialize(PointPlotDimension value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PointPlotDimension fromValue(String value) { + return new PointPlotDimension(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/PointPlotProjection.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjection.java new file mode 100644 index 00000000000..34ea25836be --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjection.java @@ -0,0 +1,225 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Projection configuration for the point plot widget. */ +@JsonPropertyOrder({ + PointPlotProjection.JSON_PROPERTY_DIMENSIONS, + PointPlotProjection.JSON_PROPERTY_EXTRA_COLUMNS, + PointPlotProjection.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PointPlotProjection { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DIMENSIONS = "dimensions"; + private List dimensions = new ArrayList<>(); + + public static final String JSON_PROPERTY_EXTRA_COLUMNS = "extra_columns"; + private List extraColumns = null; + + public static final String JSON_PROPERTY_TYPE = "type"; + private PointPlotProjectionType type; + + public PointPlotProjection() {} + + @JsonCreator + public PointPlotProjection( + @JsonProperty(required = true, value = JSON_PROPERTY_DIMENSIONS) + List dimensions, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) PointPlotProjectionType type) { + this.dimensions = dimensions; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public PointPlotProjection dimensions(List dimensions) { + this.dimensions = dimensions; + for (PointPlotProjectionDimension item : dimensions) { + this.unparsed |= item.unparsed; + } + return this; + } + + public PointPlotProjection addDimensionsItem(PointPlotProjectionDimension dimensionsItem) { + this.dimensions.add(dimensionsItem); + this.unparsed |= dimensionsItem.unparsed; + return this; + } + + /** + * List of dimension mappings for the projection. + * + * @return dimensions + */ + @JsonProperty(JSON_PROPERTY_DIMENSIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getDimensions() { + return dimensions; + } + + public void setDimensions(List dimensions) { + this.dimensions = dimensions; + } + + public PointPlotProjection extraColumns(List extraColumns) { + this.extraColumns = extraColumns; + return this; + } + + public PointPlotProjection addExtraColumnsItem(String extraColumnsItem) { + if (this.extraColumns == null) { + this.extraColumns = new ArrayList<>(); + } + this.extraColumns.add(extraColumnsItem); + return this; + } + + /** + * Additional columns to include in the projection. + * + * @return extraColumns + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXTRA_COLUMNS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getExtraColumns() { + return extraColumns; + } + + public void setExtraColumns(List extraColumns) { + this.extraColumns = extraColumns; + } + + public PointPlotProjection type(PointPlotProjectionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of the projection. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PointPlotProjectionType getType() { + return type; + } + + public void setType(PointPlotProjectionType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PointPlotProjection + */ + @JsonAnySetter + public PointPlotProjection putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PointPlotProjection object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PointPlotProjection pointPlotProjection = (PointPlotProjection) o; + return Objects.equals(this.dimensions, pointPlotProjection.dimensions) + && Objects.equals(this.extraColumns, pointPlotProjection.extraColumns) + && Objects.equals(this.type, pointPlotProjection.type) + && Objects.equals(this.additionalProperties, pointPlotProjection.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(dimensions, extraColumns, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PointPlotProjection {\n"); + sb.append(" dimensions: ").append(toIndentedString(dimensions)).append("\n"); + sb.append(" extraColumns: ").append(toIndentedString(extraColumns)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/PointPlotProjectionDimension.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionDimension.java new file mode 100644 index 00000000000..93206b65e99 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionDimension.java @@ -0,0 +1,207 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Dimension mapping for the point plot projection. */ +@JsonPropertyOrder({ + PointPlotProjectionDimension.JSON_PROPERTY_ALIAS, + PointPlotProjectionDimension.JSON_PROPERTY_COLUMN, + PointPlotProjectionDimension.JSON_PROPERTY_DIMENSION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PointPlotProjectionDimension { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ALIAS = "alias"; + private String alias; + + public static final String JSON_PROPERTY_COLUMN = "column"; + private String column; + + public static final String JSON_PROPERTY_DIMENSION = "dimension"; + private PointPlotDimension dimension; + + public PointPlotProjectionDimension() {} + + @JsonCreator + public PointPlotProjectionDimension( + @JsonProperty(required = true, value = JSON_PROPERTY_COLUMN) String column, + @JsonProperty(required = true, value = JSON_PROPERTY_DIMENSION) + PointPlotDimension dimension) { + this.column = column; + this.dimension = dimension; + this.unparsed |= !dimension.isValid(); + } + + public PointPlotProjectionDimension alias(String alias) { + this.alias = alias; + return this; + } + + /** + * Alias for the column. + * + * @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 PointPlotProjectionDimension column(String column) { + this.column = column; + return this; + } + + /** + * Source column name from the dataset. + * + * @return column + */ + @JsonProperty(JSON_PROPERTY_COLUMN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getColumn() { + return column; + } + + public void setColumn(String column) { + this.column = column; + } + + public PointPlotProjectionDimension dimension(PointPlotDimension dimension) { + this.dimension = dimension; + this.unparsed |= !dimension.isValid(); + return this; + } + + /** + * Dimension of the point plot. + * + * @return dimension + */ + @JsonProperty(JSON_PROPERTY_DIMENSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PointPlotDimension getDimension() { + return dimension; + } + + public void setDimension(PointPlotDimension dimension) { + if (!dimension.isValid()) { + this.unparsed = true; + } + this.dimension = dimension; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PointPlotProjectionDimension + */ + @JsonAnySetter + public PointPlotProjectionDimension putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PointPlotProjectionDimension object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PointPlotProjectionDimension pointPlotProjectionDimension = (PointPlotProjectionDimension) o; + return Objects.equals(this.alias, pointPlotProjectionDimension.alias) + && Objects.equals(this.column, pointPlotProjectionDimension.column) + && Objects.equals(this.dimension, pointPlotProjectionDimension.dimension) + && Objects.equals( + this.additionalProperties, pointPlotProjectionDimension.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(alias, column, dimension, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PointPlotProjectionDimension {\n"); + sb.append(" alias: ").append(toIndentedString(alias)).append("\n"); + sb.append(" column: ").append(toIndentedString(column)).append("\n"); + sb.append(" dimension: ").append(toIndentedString(dimension)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/PointPlotProjectionType.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionType.java new file mode 100644 index 00000000000..f3d02d08255 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotProjectionType.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 projection. */ +@JsonSerialize(using = PointPlotProjectionType.PointPlotProjectionTypeSerializer.class) +public class PointPlotProjectionType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("point_plot")); + + public static final PointPlotProjectionType POINT_PLOT = + new PointPlotProjectionType("point_plot"); + + PointPlotProjectionType(String value) { + super(value, allowedValues); + } + + public static class PointPlotProjectionTypeSerializer + extends StdSerializer { + public PointPlotProjectionTypeSerializer(Class t) { + super(t); + } + + public PointPlotProjectionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + PointPlotProjectionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PointPlotProjectionType fromValue(String value) { + return new PointPlotProjectionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinition.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinition.java new file mode 100644 index 00000000000..1fce0cb1200 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinition.java @@ -0,0 +1,478 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The point plot displays individual data points over time. */ +@JsonPropertyOrder({ + PointPlotWidgetDefinition.JSON_PROPERTY_CUSTOM_LINKS, + PointPlotWidgetDefinition.JSON_PROPERTY_DESCRIPTION, + PointPlotWidgetDefinition.JSON_PROPERTY_LEGEND, + PointPlotWidgetDefinition.JSON_PROPERTY_MARKERS, + PointPlotWidgetDefinition.JSON_PROPERTY_REQUESTS, + PointPlotWidgetDefinition.JSON_PROPERTY_TIME, + PointPlotWidgetDefinition.JSON_PROPERTY_TITLE, + PointPlotWidgetDefinition.JSON_PROPERTY_TITLE_ALIGN, + PointPlotWidgetDefinition.JSON_PROPERTY_TITLE_SIZE, + PointPlotWidgetDefinition.JSON_PROPERTY_TYPE, + PointPlotWidgetDefinition.JSON_PROPERTY_YAXIS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PointPlotWidgetDefinition { + @JsonIgnore public boolean unparsed = false; + 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_LEGEND = "legend"; + private PointPlotWidgetLegend legend; + + public static final String JSON_PROPERTY_MARKERS = "markers"; + private List markers = null; + + public static final String JSON_PROPERTY_REQUESTS = "requests"; + private List requests = new ArrayList<>(); + + 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 PointPlotWidgetDefinitionType type = PointPlotWidgetDefinitionType.POINT_PLOT; + + public static final String JSON_PROPERTY_YAXIS = "yaxis"; + private WidgetAxis yaxis; + + public PointPlotWidgetDefinition() {} + + @JsonCreator + public PointPlotWidgetDefinition( + @JsonProperty(required = true, value = JSON_PROPERTY_REQUESTS) + List requests, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + PointPlotWidgetDefinitionType type) { + this.requests = requests; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public PointPlotWidgetDefinition customLinks(List customLinks) { + this.customLinks = customLinks; + for (WidgetCustomLink item : customLinks) { + this.unparsed |= item.unparsed; + } + return this; + } + + public PointPlotWidgetDefinition 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; + } + + public PointPlotWidgetDefinition description(String description) { + this.description = description; + return this; + } + + /** + * The 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 PointPlotWidgetDefinition legend(PointPlotWidgetLegend legend) { + this.legend = legend; + this.unparsed |= legend.unparsed; + return this; + } + + /** + * Legend configuration for the point plot widget. + * + * @return legend + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LEGEND) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public PointPlotWidgetLegend getLegend() { + return legend; + } + + public void setLegend(PointPlotWidgetLegend legend) { + this.legend = legend; + } + + public PointPlotWidgetDefinition markers(List markers) { + this.markers = markers; + for (WidgetMarker item : markers) { + this.unparsed |= item.unparsed; + } + return this; + } + + public PointPlotWidgetDefinition addMarkersItem(WidgetMarker markersItem) { + if (this.markers == null) { + this.markers = new ArrayList<>(); + } + this.markers.add(markersItem); + this.unparsed |= markersItem.unparsed; + return this; + } + + /** + * List of markers for the widget. + * + * @return markers + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MARKERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getMarkers() { + return markers; + } + + public void setMarkers(List markers) { + this.markers = markers; + } + + public PointPlotWidgetDefinition requests(List requests) { + this.requests = requests; + for (PointPlotWidgetRequest item : requests) { + this.unparsed |= item.unparsed; + } + return this; + } + + public PointPlotWidgetDefinition addRequestsItem(PointPlotWidgetRequest requestsItem) { + this.requests.add(requestsItem); + this.unparsed |= requestsItem.unparsed; + return this; + } + + /** + * List of request configurations for the widget. + * + * @return requests + */ + @JsonProperty(JSON_PROPERTY_REQUESTS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRequests() { + return requests; + } + + public void setRequests(List requests) { + this.requests = requests; + } + + public PointPlotWidgetDefinition 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; + } + + public PointPlotWidgetDefinition 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 PointPlotWidgetDefinition 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 PointPlotWidgetDefinition 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 PointPlotWidgetDefinition type(PointPlotWidgetDefinitionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of the point plot widget. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PointPlotWidgetDefinitionType getType() { + return type; + } + + public void setType(PointPlotWidgetDefinitionType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + public PointPlotWidgetDefinition yaxis(WidgetAxis yaxis) { + this.yaxis = yaxis; + this.unparsed |= yaxis.unparsed; + return this; + } + + /** + * Axis controls for the widget. + * + * @return yaxis + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_YAXIS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public WidgetAxis getYaxis() { + return yaxis; + } + + public void setYaxis(WidgetAxis yaxis) { + this.yaxis = yaxis; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PointPlotWidgetDefinition + */ + @JsonAnySetter + public PointPlotWidgetDefinition putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PointPlotWidgetDefinition object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PointPlotWidgetDefinition pointPlotWidgetDefinition = (PointPlotWidgetDefinition) o; + return Objects.equals(this.customLinks, pointPlotWidgetDefinition.customLinks) + && Objects.equals(this.description, pointPlotWidgetDefinition.description) + && Objects.equals(this.legend, pointPlotWidgetDefinition.legend) + && Objects.equals(this.markers, pointPlotWidgetDefinition.markers) + && Objects.equals(this.requests, pointPlotWidgetDefinition.requests) + && Objects.equals(this.time, pointPlotWidgetDefinition.time) + && Objects.equals(this.title, pointPlotWidgetDefinition.title) + && Objects.equals(this.titleAlign, pointPlotWidgetDefinition.titleAlign) + && Objects.equals(this.titleSize, pointPlotWidgetDefinition.titleSize) + && Objects.equals(this.type, pointPlotWidgetDefinition.type) + && Objects.equals(this.yaxis, pointPlotWidgetDefinition.yaxis) + && Objects.equals( + this.additionalProperties, pointPlotWidgetDefinition.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + customLinks, + description, + legend, + markers, + requests, + time, + title, + titleAlign, + titleSize, + type, + yaxis, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PointPlotWidgetDefinition {\n"); + sb.append(" customLinks: ").append(toIndentedString(customLinks)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" legend: ").append(toIndentedString(legend)).append("\n"); + sb.append(" markers: ").append(toIndentedString(markers)).append("\n"); + sb.append(" requests: ").append(toIndentedString(requests)).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(" yaxis: ").append(toIndentedString(yaxis)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/PointPlotWidgetDefinitionType.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinitionType.java new file mode 100644 index 00000000000..d169c41d216 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetDefinitionType.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 point plot widget. */ +@JsonSerialize(using = PointPlotWidgetDefinitionType.PointPlotWidgetDefinitionTypeSerializer.class) +public class PointPlotWidgetDefinitionType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("point_plot")); + + public static final PointPlotWidgetDefinitionType POINT_PLOT = + new PointPlotWidgetDefinitionType("point_plot"); + + PointPlotWidgetDefinitionType(String value) { + super(value, allowedValues); + } + + public static class PointPlotWidgetDefinitionTypeSerializer + extends StdSerializer { + public PointPlotWidgetDefinitionTypeSerializer(Class t) { + super(t); + } + + public PointPlotWidgetDefinitionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + PointPlotWidgetDefinitionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PointPlotWidgetDefinitionType fromValue(String value) { + return new PointPlotWidgetDefinitionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegend.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegend.java new file mode 100644 index 00000000000..d882163967f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegend.java @@ -0,0 +1,148 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Legend configuration for the point plot widget. */ +@JsonPropertyOrder({PointPlotWidgetLegend.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PointPlotWidgetLegend { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private PointPlotWidgetLegendType type; + + public PointPlotWidgetLegend() {} + + @JsonCreator + public PointPlotWidgetLegend( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) PointPlotWidgetLegendType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public PointPlotWidgetLegend type(PointPlotWidgetLegendType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of legend to show for the point plot widget. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PointPlotWidgetLegendType getType() { + return type; + } + + public void setType(PointPlotWidgetLegendType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PointPlotWidgetLegend + */ + @JsonAnySetter + public PointPlotWidgetLegend putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PointPlotWidgetLegend object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PointPlotWidgetLegend pointPlotWidgetLegend = (PointPlotWidgetLegend) o; + return Objects.equals(this.type, pointPlotWidgetLegend.type) + && Objects.equals(this.additionalProperties, pointPlotWidgetLegend.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PointPlotWidgetLegend {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/PointPlotWidgetLegendType.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegendType.java new file mode 100644 index 00000000000..418c72d0b26 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetLegendType.java @@ -0,0 +1,58 @@ +/* + * 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 legend to show for the point plot widget. */ +@JsonSerialize(using = PointPlotWidgetLegendType.PointPlotWidgetLegendTypeSerializer.class) +public class PointPlotWidgetLegendType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("automatic", "none")); + + public static final PointPlotWidgetLegendType AUTOMATIC = + new PointPlotWidgetLegendType("automatic"); + public static final PointPlotWidgetLegendType NONE = new PointPlotWidgetLegendType("none"); + + PointPlotWidgetLegendType(String value) { + super(value, allowedValues); + } + + public static class PointPlotWidgetLegendTypeSerializer + extends StdSerializer { + public PointPlotWidgetLegendTypeSerializer(Class t) { + super(t); + } + + public PointPlotWidgetLegendTypeSerializer() { + this(null); + } + + @Override + public void serialize( + PointPlotWidgetLegendType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PointPlotWidgetLegendType fromValue(String value) { + return new PointPlotWidgetLegendType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetRequest.java b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetRequest.java new file mode 100644 index 00000000000..6ddce55f11d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v1/model/PointPlotWidgetRequest.java @@ -0,0 +1,239 @@ +/* + * 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.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request configuration for the point plot widget. */ +@JsonPropertyOrder({ + PointPlotWidgetRequest.JSON_PROPERTY_LIMIT, + PointPlotWidgetRequest.JSON_PROPERTY_PROJECTION, + PointPlotWidgetRequest.JSON_PROPERTY_QUERY, + PointPlotWidgetRequest.JSON_PROPERTY_REQUEST_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PointPlotWidgetRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_LIMIT = "limit"; + private Long limit; + + public static final String JSON_PROPERTY_PROJECTION = "projection"; + private PointPlotProjection projection; + + public static final String JSON_PROPERTY_QUERY = "query"; + private DataProjectionQuery query; + + public static final String JSON_PROPERTY_REQUEST_TYPE = "request_type"; + private DataProjectionRequestType requestType; + + public PointPlotWidgetRequest() {} + + @JsonCreator + public PointPlotWidgetRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECTION) + PointPlotProjection projection, + @JsonProperty(required = true, value = JSON_PROPERTY_QUERY) DataProjectionQuery query, + @JsonProperty(required = true, value = JSON_PROPERTY_REQUEST_TYPE) + DataProjectionRequestType requestType) { + this.projection = projection; + this.unparsed |= projection.unparsed; + this.query = query; + this.unparsed |= query.unparsed; + this.requestType = requestType; + this.unparsed |= !requestType.isValid(); + } + + public PointPlotWidgetRequest limit(Long limit) { + this.limit = limit; + return this; + } + + /** + * Maximum number of data points to return. + * + * @return limit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LIMIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getLimit() { + return limit; + } + + public void setLimit(Long limit) { + this.limit = limit; + } + + public PointPlotWidgetRequest projection(PointPlotProjection projection) { + this.projection = projection; + this.unparsed |= projection.unparsed; + return this; + } + + /** + * Projection configuration for the point plot widget. + * + * @return projection + */ + @JsonProperty(JSON_PROPERTY_PROJECTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PointPlotProjection getProjection() { + return projection; + } + + public void setProjection(PointPlotProjection projection) { + this.projection = projection; + } + + public PointPlotWidgetRequest query(DataProjectionQuery query) { + this.query = query; + this.unparsed |= query.unparsed; + return this; + } + + /** + * Query configuration for a data projection request. + * + * @return query + */ + @JsonProperty(JSON_PROPERTY_QUERY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public DataProjectionQuery getQuery() { + return query; + } + + public void setQuery(DataProjectionQuery query) { + this.query = query; + } + + public PointPlotWidgetRequest requestType(DataProjectionRequestType requestType) { + this.requestType = requestType; + this.unparsed |= !requestType.isValid(); + return this; + } + + /** + * Type of a data projection request. + * + * @return requestType + */ + @JsonProperty(JSON_PROPERTY_REQUEST_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public DataProjectionRequestType getRequestType() { + return requestType; + } + + public void setRequestType(DataProjectionRequestType requestType) { + if (!requestType.isValid()) { + this.unparsed = true; + } + this.requestType = requestType; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PointPlotWidgetRequest + */ + @JsonAnySetter + public PointPlotWidgetRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PointPlotWidgetRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PointPlotWidgetRequest pointPlotWidgetRequest = (PointPlotWidgetRequest) o; + return Objects.equals(this.limit, pointPlotWidgetRequest.limit) + && Objects.equals(this.projection, pointPlotWidgetRequest.projection) + && Objects.equals(this.query, pointPlotWidgetRequest.query) + && Objects.equals(this.requestType, pointPlotWidgetRequest.requestType) + && Objects.equals(this.additionalProperties, pointPlotWidgetRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(limit, projection, query, requestType, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PointPlotWidgetRequest {\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" projection: ").append(toIndentedString(projection)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" requestType: ").append(toIndentedString(requestType)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .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/WidgetDefinition.java b/src/main/java/com/datadog/api/client/v1/model/WidgetDefinition.java index 2de071864af..3ae3cc29f7e 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 @@ -1119,6 +1119,51 @@ public WidgetDefinition deserialize(JsonParser jp, DeserializationContext ctxt) log.log(Level.FINER, "Input data does not match schema 'PowerpackWidgetDefinition'", e); } + // deserialize PointPlotWidgetDefinition + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (PointPlotWidgetDefinition.class.equals(Integer.class) + || PointPlotWidgetDefinition.class.equals(Long.class) + || PointPlotWidgetDefinition.class.equals(Float.class) + || PointPlotWidgetDefinition.class.equals(Double.class) + || PointPlotWidgetDefinition.class.equals(Boolean.class) + || PointPlotWidgetDefinition.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((PointPlotWidgetDefinition.class.equals(Integer.class) + || PointPlotWidgetDefinition.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((PointPlotWidgetDefinition.class.equals(Float.class) + || PointPlotWidgetDefinition.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (PointPlotWidgetDefinition.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (PointPlotWidgetDefinition.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(PointPlotWidgetDefinition.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 (!((PointPlotWidgetDefinition) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'PointPlotWidgetDefinition'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'PointPlotWidgetDefinition'", e); + } + // deserialize QueryValueWidgetDefinition try { boolean attemptParsing = true; @@ -2028,6 +2073,11 @@ public WidgetDefinition(PowerpackWidgetDefinition o) { setActualInstance(o); } + public WidgetDefinition(PointPlotWidgetDefinition o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + public WidgetDefinition(QueryValueWidgetDefinition o) { super("oneOf", Boolean.FALSE); setActualInstance(o); @@ -2141,6 +2191,7 @@ public WidgetDefinition(WildcardWidgetDefinition o) { "MonitorSummaryWidgetDefinition", new GenericType() {}); schemas.put("NoteWidgetDefinition", new GenericType() {}); schemas.put("PowerpackWidgetDefinition", new GenericType() {}); + schemas.put("PointPlotWidgetDefinition", new GenericType() {}); schemas.put("QueryValueWidgetDefinition", new GenericType() {}); schemas.put( "RetentionCurveWidgetDefinition", new GenericType() {}); @@ -2178,12 +2229,12 @@ public Map getSchemas() { * HeatMapWidgetDefinition, HostMapWidgetDefinition, IFrameWidgetDefinition, * ImageWidgetDefinition, ListStreamWidgetDefinition, LogStreamWidgetDefinition, * MonitorSummaryWidgetDefinition, NoteWidgetDefinition, PowerpackWidgetDefinition, - * QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, - * SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, - * SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, - * SplitGraphWidgetDefinition, SunburstWidgetDefinition, TableWidgetDefinition, - * TimeseriesWidgetDefinition, ToplistWidgetDefinition, TopologyMapWidgetDefinition, - * TreeMapWidgetDefinition, WildcardWidgetDefinition + * 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). @@ -2284,6 +2335,10 @@ public void setActualInstance(Object instance) { super.setActualInstance(instance); return; } + if (JSON.isInstanceOf(PointPlotWidgetDefinition.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } if (JSON.isInstanceOf(QueryValueWidgetDefinition.class, instance, new HashSet>())) { super.setActualInstance(instance); return; @@ -2368,7 +2423,7 @@ public void setActualInstance(Object instance) { + " GroupWidgetDefinition, HeatMapWidgetDefinition, HostMapWidgetDefinition," + " IFrameWidgetDefinition, ImageWidgetDefinition, ListStreamWidgetDefinition," + " LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, NoteWidgetDefinition," - + " PowerpackWidgetDefinition, QueryValueWidgetDefinition," + + " PowerpackWidgetDefinition, PointPlotWidgetDefinition, QueryValueWidgetDefinition," + " RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition," + " SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition," + " SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition," @@ -2386,12 +2441,13 @@ public void setActualInstance(Object instance) { * GroupWidgetDefinition, HeatMapWidgetDefinition, HostMapWidgetDefinition, * IFrameWidgetDefinition, ImageWidgetDefinition, ListStreamWidgetDefinition, * LogStreamWidgetDefinition, MonitorSummaryWidgetDefinition, NoteWidgetDefinition, - * PowerpackWidgetDefinition, QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, - * RunWorkflowWidgetDefinition, SLOListWidgetDefinition, SLOWidgetDefinition, - * ScatterPlotWidgetDefinition, SankeyWidgetDefinition, ServiceMapWidgetDefinition, - * ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, SunburstWidgetDefinition, - * TableWidgetDefinition, TimeseriesWidgetDefinition, ToplistWidgetDefinition, - * TopologyMapWidgetDefinition, TreeMapWidgetDefinition, WildcardWidgetDefinition + * 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, @@ -2401,12 +2457,12 @@ public void setActualInstance(Object instance) { * HeatMapWidgetDefinition, HostMapWidgetDefinition, IFrameWidgetDefinition, * ImageWidgetDefinition, ListStreamWidgetDefinition, LogStreamWidgetDefinition, * MonitorSummaryWidgetDefinition, NoteWidgetDefinition, PowerpackWidgetDefinition, - * QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, RunWorkflowWidgetDefinition, - * SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, - * SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, - * SplitGraphWidgetDefinition, SunburstWidgetDefinition, TableWidgetDefinition, - * TimeseriesWidgetDefinition, ToplistWidgetDefinition, TopologyMapWidgetDefinition, - * TreeMapWidgetDefinition, WildcardWidgetDefinition) + * PointPlotWidgetDefinition, QueryValueWidgetDefinition, RetentionCurveWidgetDefinition, + * RunWorkflowWidgetDefinition, SLOListWidgetDefinition, SLOWidgetDefinition, + * ScatterPlotWidgetDefinition, SankeyWidgetDefinition, ServiceMapWidgetDefinition, + * ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, SunburstWidgetDefinition, + * TableWidgetDefinition, TimeseriesWidgetDefinition, ToplistWidgetDefinition, + * TopologyMapWidgetDefinition, TreeMapWidgetDefinition, WildcardWidgetDefinition) */ @Override public Object getActualInstance() { @@ -2669,6 +2725,17 @@ public PowerpackWidgetDefinition getPowerpackWidgetDefinition() throws ClassCast return (PowerpackWidgetDefinition) super.getActualInstance(); } + /** + * Get the actual instance of `PointPlotWidgetDefinition`. If the actual instance is not + * `PointPlotWidgetDefinition`, the ClassCastException will be thrown. + * + * @return The actual instance of `PointPlotWidgetDefinition` + * @throws ClassCastException if the instance is not `PointPlotWidgetDefinition` + */ + public PointPlotWidgetDefinition getPointPlotWidgetDefinition() throws ClassCastException { + return (PointPlotWidgetDefinition) super.getActualInstance(); + } + /** * Get the actual instance of `QueryValueWidgetDefinition`. If the actual instance is not * `QueryValueWidgetDefinition`, the ClassCastException will be thrown. diff --git a/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.freeze b/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.freeze new file mode 100644 index 00000000000..8f6732ce124 --- /dev/null +++ b/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.freeze @@ -0,0 +1 @@ +2026-04-30T15:58:43.378Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.json b/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.json new file mode 100644 index 00000000000..37c21d43592 --- /dev/null +++ b/src/test/resources/cassettes/features/v1/Create_a_new_dashboard_with_point_plot_widget.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"layout_type\":\"ordered\",\"title\":\"Test-Create_a_new_dashboard_with_point_plot_widget-1777564723\",\"widgets\":[{\"definition\":{\"requests\":[{\"projection\":{\"dimensions\":[{\"column\":\"host\",\"dimension\":\"group\"},{\"column\":\"@duration\",\"dimension\":\"y\"}],\"type\":\"point_plot\"},\"query\":{\"data_source\":\"logs\",\"query_string\":\"service:web-store\"},\"request_type\":\"data_projection\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"point_plot\"}}]}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v1/dashboard", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"id\":\"w8g-9wi-uav\",\"title\":\"Test-Create_a_new_dashboard_with_point_plot_widget-1777564723\",\"description\":null,\"author_handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"author_name\":\"CI Account\",\"layout_type\":\"ordered\",\"url\":\"/dashboard/w8g-9wi-uav/test-createanewdashboardwithpointplotwidget-1777564723\",\"template_variables\":null,\"widgets\":[{\"definition\":{\"requests\":[{\"projection\":{\"dimensions\":[{\"column\":\"host\",\"dimension\":\"group\"},{\"column\":\"@duration\",\"dimension\":\"y\"}],\"type\":\"point_plot\"},\"query\":{\"data_source\":\"logs\",\"query_string\":\"service:web-store\"},\"request_type\":\"data_projection\"}],\"title\":\"\",\"title_align\":\"left\",\"title_size\":\"16\",\"type\":\"point_plot\"},\"id\":1386353259406476}],\"notify_list\":null,\"created_at\":\"2026-04-30T15:58:43.645158+00:00\",\"modified_at\":\"2026-04-30T15:58:43.645158+00:00\",\"restricted_roles\":[]}", + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "059f3c5f-6e7d-9e3d-ad3a-892d5629f2c1" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v1/dashboard/w8g-9wi-uav", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"deleted_dashboard_id\":\"w8g-9wi-uav\"}", + "headers": { + "Content-Type": [ + "application/json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "34713bd6-9597-a294-fdf5-e297fb7f9187" + } +] \ No newline at end of file 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 2541faab2d1..655b599b89b 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 @@ -739,6 +739,18 @@ Feature: Dashboards And the response "widgets[0].definition.type" is equal to "note" And the response "widgets[0].definition.content" is equal to "# Example Note" + @team:DataDog/dashboards-backend + Scenario: Create a new dashboard with point_plot widget + Given new "CreateDashboard" request + And body from file "dashboards_json_payload/point_plot_widget.json" + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "point_plot" + And the response "widgets[0].definition.requests[0].request_type" is equal to "data_projection" + And the response "widgets[0].definition.requests[0].projection.type" is equal to "point_plot" + And the response "widgets[0].definition.requests[0].projection.dimensions[0].dimension" is equal to "group" + And the response "widgets[0].definition.requests[0].projection.dimensions[1].dimension" is equal to "y" + @team:DataDog/dashboards-backend Scenario: Create a new dashboard with powerpack widget Given new "CreateDashboard" request diff --git a/src/test/resources/com/datadog/api/client/v1/api/dashboards_json_payload/point_plot_widget.json b/src/test/resources/com/datadog/api/client/v1/api/dashboards_json_payload/point_plot_widget.json new file mode 100644 index 00000000000..c8e340c7078 --- /dev/null +++ b/src/test/resources/com/datadog/api/client/v1/api/dashboards_json_payload/point_plot_widget.json @@ -0,0 +1,36 @@ +{ + "title": "{{ unique }}", + "layout_type": "ordered", + "widgets": [ + { + "definition": { + "title": "", + "title_size": "16", + "title_align": "left", + "type": "point_plot", + "requests": [ + { + "request_type": "data_projection", + "query": { + "query_string": "service:web-store", + "data_source": "logs" + }, + "projection": { + "type": "point_plot", + "dimensions": [ + { + "column": "host", + "dimension": "group" + }, + { + "column": "@duration", + "dimension": "y" + } + ] + } + } + ] + } + } + ] +}