diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 0cbaf7439c5..3eee36df53c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -90233,6 +90233,8 @@ components: filter: description: Filter expression applied to the recommendations. type: string + scope: + $ref: '#/components/schemas/RecommendationsFilterRequestScope' sort: description: Ordered list of sort clauses applied to the result set. items: @@ -90242,6 +90244,17 @@ components: description: Active view name (for example, `active`, `dismissed`, `open`, `in-progress`, or `completed`). type: string type: object + RecommendationsFilterRequestScope: + description: Recommendations scope. Defaults to `ccm`; use `experiment` for experimental recommendations or `*` for both. + enum: + - ccm + - experiment + - "*" + type: string + x-enum-varnames: + - CCM + - EXPERIMENT + - ALL RecommendationsFilterRequestSortItems: description: A single sort clause applied to the cost recommendations result set. properties: diff --git a/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequest.java b/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequest.java index 92680544c64..6015ec576f0 100644 --- a/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequest.java +++ b/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequest.java @@ -21,6 +21,7 @@ /** Request body for filtering cost recommendations. */ @JsonPropertyOrder({ RecommendationsFilterRequest.JSON_PROPERTY_FILTER, + RecommendationsFilterRequest.JSON_PROPERTY_SCOPE, RecommendationsFilterRequest.JSON_PROPERTY_SORT, RecommendationsFilterRequest.JSON_PROPERTY_VIEW }) @@ -31,6 +32,9 @@ public class RecommendationsFilterRequest { public static final String JSON_PROPERTY_FILTER = "filter"; private String filter; + public static final String JSON_PROPERTY_SCOPE = "scope"; + private RecommendationsFilterRequestScope scope; + public static final String JSON_PROPERTY_SORT = "sort"; private List sort = null; @@ -58,6 +62,32 @@ public void setFilter(String filter) { this.filter = filter; } + public RecommendationsFilterRequest scope(RecommendationsFilterRequestScope scope) { + this.scope = scope; + this.unparsed |= !scope.isValid(); + return this; + } + + /** + * Recommendations scope. Defaults to ccm; use experiment for + * experimental recommendations or * for both. + * + * @return scope + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SCOPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public RecommendationsFilterRequestScope getScope() { + return scope; + } + + public void setScope(RecommendationsFilterRequestScope scope) { + if (!scope.isValid()) { + this.unparsed = true; + } + this.scope = scope; + } + public RecommendationsFilterRequest sort(List sort) { this.sort = sort; if (sort != null) { @@ -177,6 +207,7 @@ public boolean equals(Object o) { } RecommendationsFilterRequest recommendationsFilterRequest = (RecommendationsFilterRequest) o; return Objects.equals(this.filter, recommendationsFilterRequest.filter) + && Objects.equals(this.scope, recommendationsFilterRequest.scope) && Objects.equals(this.sort, recommendationsFilterRequest.sort) && Objects.equals(this.view, recommendationsFilterRequest.view) && Objects.equals( @@ -185,7 +216,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(filter, sort, view, additionalProperties); + return Objects.hash(filter, scope, sort, view, additionalProperties); } @Override @@ -193,6 +224,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RecommendationsFilterRequest {\n"); sb.append(" filter: ").append(toIndentedString(filter)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); sb.append(" view: ").append(toIndentedString(view)).append("\n"); sb.append(" additionalProperties: ") diff --git a/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequestScope.java b/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequestScope.java new file mode 100644 index 00000000000..e0f65c5d56d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/RecommendationsFilterRequestScope.java @@ -0,0 +1,65 @@ +/* + * 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.v2.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; + +/** + * Recommendations scope. Defaults to ccm; use experiment for experimental + * recommendations or * for both. + */ +@JsonSerialize( + using = RecommendationsFilterRequestScope.RecommendationsFilterRequestScopeSerializer.class) +public class RecommendationsFilterRequestScope extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("ccm", "experiment", "*")); + + public static final RecommendationsFilterRequestScope CCM = + new RecommendationsFilterRequestScope("ccm"); + public static final RecommendationsFilterRequestScope EXPERIMENT = + new RecommendationsFilterRequestScope("experiment"); + public static final RecommendationsFilterRequestScope ALL = + new RecommendationsFilterRequestScope("*"); + + RecommendationsFilterRequestScope(String value) { + super(value, allowedValues); + } + + public static class RecommendationsFilterRequestScopeSerializer + extends StdSerializer { + public RecommendationsFilterRequestScopeSerializer(Class t) { + super(t); + } + + public RecommendationsFilterRequestScopeSerializer() { + this(null); + } + + @Override + public void serialize( + RecommendationsFilterRequestScope value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static RecommendationsFilterRequestScope fromValue(String value) { + return new RecommendationsFilterRequestScope(value); + } +}