Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 48 additions & 11 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91785,16 +91785,40 @@ components:
x-enum-varnames:
- RECOMMENDATION
RecommendationsFilterRequest:
description: Request body for filtering cost recommendations.
description: JSON:API request body for filtering cost recommendations.
example:
filter: "@resource_table:aws_ec2_instance"
sort:
- expression: potential_daily_savings.amount
order: DESC
data:
attributes:
scope: ccm
sort:
- expression: potential_daily_savings.amount
order: DESC
id: "@resource_table:aws_ec2_instance"
type: recommendations_filter
properties:
filter:
description: Filter expression applied to the recommendations.
data:
$ref: "#/components/schemas/RecommendationsFilterRequestData"
type: object
RecommendationsFilterRequestData:
description: |-
JSON:API resource containing the cost recommendations filter. This legacy search contract
uses the resource ID for the filter expression rather than as a persistent resource identifier.
properties:
attributes:
$ref: "#/components/schemas/RecommendationsFilterRequestDataAttributes"
id:
description: |-
Filter expression applied to the recommendations. The server treats an omitted ID as `*`
and returns all recommendations.
type: string
type:
$ref: "#/components/schemas/RecommendationsFilterRequestDataType"
required:
- type
type: object
RecommendationsFilterRequestDataAttributes:
description: Attributes used to filter and sort cost recommendations.
properties:
scope:
$ref: "#/components/schemas/RecommendationsFilterRequestScope"
sort:
Expand All @@ -91806,6 +91830,15 @@ components:
description: Active view name (for example, `active`, `dismissed`, `open`, `in-progress`, or `completed`).
type: string
type: object
RecommendationsFilterRequestDataType:
default: recommendations_filter
description: Legacy JSON:API resource type required by the cost recommendations search decoder.
enum:
- recommendations_filter
example: recommendations_filter
type: string
x-enum-varnames:
- RECOMMENDATIONS_FILTER
RecommendationsFilterRequestScope:
description: Recommendations scope. Defaults to `ccm`; use `experiment` for experimental recommendations or `*` for both.
enum:
Expand Down Expand Up @@ -145636,10 +145669,14 @@ paths:
examples:
default:
value:
filter: "@resource_table:aws_ec2_instance"
sort:
- expression: potential_daily_savings.amount
order: DESC
data:
attributes:
scope: ccm
sort:
- expression: potential_daily_savings.amount
order: DESC
id: "@resource_table:aws_ec2_instance"
type: recommendations_filter
schema:
$ref: "#/components/schemas/RecommendationsFilterRequest"
required: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
import com.datadog.api.client.v2.api.CloudCostManagementApi;
import com.datadog.api.client.v2.model.CostRecommendationArray;
import com.datadog.api.client.v2.model.RecommendationsFilterRequest;
import com.datadog.api.client.v2.model.RecommendationsFilterRequestData;
import com.datadog.api.client.v2.model.RecommendationsFilterRequestDataAttributes;
import com.datadog.api.client.v2.model.RecommendationsFilterRequestDataType;
import com.datadog.api.client.v2.model.RecommendationsFilterRequestScope;
import com.datadog.api.client.v2.model.RecommendationsFilterRequestSortItems;
import java.util.Collections;

Expand All @@ -16,12 +20,18 @@ public static void main(String[] args) {

RecommendationsFilterRequest body =
new RecommendationsFilterRequest()
.filter("@resource_table:aws_ec2_instance")
.sort(
Collections.singletonList(
new RecommendationsFilterRequestSortItems()
.expression("potential_daily_savings.amount")
.order("DESC")));
.data(
new RecommendationsFilterRequestData()
.attributes(
new RecommendationsFilterRequestDataAttributes()
.scope(RecommendationsFilterRequestScope.CCM)
.sort(
Collections.singletonList(
new RecommendationsFilterRequestSortItems()
.expression("potential_daily_savings.amount")
.order("DESC"))))
.id("@resource_table:aws_ec2_instance")
.type(RecommendationsFilterRequestDataType.RECOMMENDATIONS_FILTER));

try {
CostRecommendationArray result = apiInstance.searchCostRecommendations(body);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,142 +12,43 @@
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;

/** Request body for filtering cost recommendations. */
@JsonPropertyOrder({
RecommendationsFilterRequest.JSON_PROPERTY_FILTER,
RecommendationsFilterRequest.JSON_PROPERTY_SCOPE,
RecommendationsFilterRequest.JSON_PROPERTY_SORT,
RecommendationsFilterRequest.JSON_PROPERTY_VIEW
})
/** JSON:API request body for filtering cost recommendations. */
@JsonPropertyOrder({RecommendationsFilterRequest.JSON_PROPERTY_DATA})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class RecommendationsFilterRequest {
@JsonIgnore public boolean unparsed = false;
public static final String JSON_PROPERTY_FILTER = "filter";
private String filter;
public static final String JSON_PROPERTY_DATA = "data";
private RecommendationsFilterRequestData data;

public static final String JSON_PROPERTY_SCOPE = "scope";
private RecommendationsFilterRequestScope scope;

public static final String JSON_PROPERTY_SORT = "sort";
private List<RecommendationsFilterRequestSortItems> sort = null;

public static final String JSON_PROPERTY_VIEW = "view";
private String view;

public RecommendationsFilterRequest filter(String filter) {
this.filter = filter;
public RecommendationsFilterRequest data(RecommendationsFilterRequestData data) {
this.data = data;
this.unparsed |= data.unparsed;
return this;
}

/**
* Filter expression applied to the recommendations.
* JSON:API resource containing the cost recommendations filter. This legacy search contract uses
* the resource ID for the filter expression rather than as a persistent resource identifier.
*
* @return filter
* @return data
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_FILTER)
@JsonProperty(JSON_PROPERTY_DATA)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public String getFilter() {
return filter;
}

public void setFilter(String filter) {
this.filter = filter;
}

public RecommendationsFilterRequest scope(RecommendationsFilterRequestScope scope) {
this.scope = scope;
this.unparsed |= !scope.isValid();
return this;
public RecommendationsFilterRequestData getData() {
return data;
}

/**
* Recommendations scope. Defaults to <code>ccm</code>; use <code>experiment</code> for
* experimental recommendations or <code>*</code> 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<RecommendationsFilterRequestSortItems> sort) {
this.sort = sort;
if (sort != null) {
for (RecommendationsFilterRequestSortItems item : sort) {
this.unparsed |= item.unparsed;
}
public void setData(RecommendationsFilterRequestData data) {
this.data = data;
if (data != null) {
this.unparsed |= data.unparsed;
}
return this;
}

public RecommendationsFilterRequest addSortItem(RecommendationsFilterRequestSortItems sortItem) {
if (this.sort == null) {
this.sort = new ArrayList<>();
}
this.sort.add(sortItem);
this.unparsed |= sortItem.unparsed;
return this;
}

/**
* Ordered list of sort clauses applied to the result set.
*
* @return sort
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_SORT)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public List<RecommendationsFilterRequestSortItems> getSort() {
return sort;
}

public void setSort(List<RecommendationsFilterRequestSortItems> sort) {
this.sort = sort;
if (sort != null) {
for (RecommendationsFilterRequestSortItems item : sort) {
this.unparsed |= item.unparsed;
}
}
}

public RecommendationsFilterRequest view(String view) {
this.view = view;
return this;
}

/**
* Active view name (for example, <code>active</code>, <code>dismissed</code>, <code>open</code>,
* <code>in-progress</code>, or <code>completed</code>).
*
* @return view
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_VIEW)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public String getView() {
return view;
}

public void setView(String view) {
this.view = view;
}

/**
Expand Down Expand Up @@ -206,27 +107,21 @@ public boolean equals(Object o) {
return false;
}
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)
return Objects.equals(this.data, recommendationsFilterRequest.data)
&& Objects.equals(
this.additionalProperties, recommendationsFilterRequest.additionalProperties);
}

@Override
public int hashCode() {
return Objects.hash(filter, scope, sort, view, additionalProperties);
return Objects.hash(data, additionalProperties);
}

@Override
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(" data: ").append(toIndentedString(data)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
Expand Down
Loading
Loading