Skip to content

Commit fb72561

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add trend support for cell_display_mode (#2713)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 57b0f32 commit fb72561

12 files changed

+638
-5
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2025-02-20 18:33:34.000024",
8-
"spec_repo_commit": "d3fcdb89"
7+
"regenerated": "2025-02-21 08:00:41.502787",
8+
"spec_repo_commit": "8f2d39c3"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2025-02-20 18:33:34.015327",
13-
"spec_repo_commit": "d3fcdb89"
12+
"regenerated": "2025-02-21 08:00:41.517713",
13+
"spec_repo_commit": "8f2d39c3"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17396,11 +17396,13 @@ components:
1739617396
enum:
1739717397
- number
1739817398
- bar
17399+
- trend
1739917400
example: number
1740017401
type: string
1740117402
x-enum-varnames:
1740217403
- NUMBER
1740317404
- BAR
17405+
- TREND
1740417406
TableWidgetDefinition:
1740517407
description: The table visualization is available on timeboards and screenboards.
1740617408
It displays columns of metrics grouped by tag key.
@@ -23089,6 +23091,8 @@ components:
2308923091
type: string
2309023092
cell_display_mode:
2309123093
$ref: '#/components/schemas/TableWidgetCellDisplayMode'
23094+
cell_display_mode_options:
23095+
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptions'
2309223096
conditional_formats:
2309323097
description: List of conditional formats.
2309423098
items:
@@ -23107,6 +23111,37 @@ components:
2310723111
required:
2310823112
- formula
2310923113
type: object
23114+
WidgetFormulaCellDisplayModeOptions:
23115+
description: Cell display mode options for the widget formula. (only if `cell_display_mode`
23116+
is set to `trend`).
23117+
properties:
23118+
trend_type:
23119+
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptionsTrendType'
23120+
y_scale:
23121+
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptionsYScale'
23122+
type: object
23123+
WidgetFormulaCellDisplayModeOptionsTrendType:
23124+
description: Trend type for the cell display mode options.
23125+
enum:
23126+
- area
23127+
- line
23128+
- bars
23129+
example: area
23130+
type: string
23131+
x-enum-varnames:
23132+
- AREA
23133+
- LINE
23134+
- BARS
23135+
WidgetFormulaCellDisplayModeOptionsYScale:
23136+
description: Y scale for the cell display mode options.
23137+
enum:
23138+
- shared
23139+
- independent
23140+
example: shared
23141+
type: string
23142+
x-enum-varnames:
23143+
- SHARED
23144+
- INDEPENDENT
2311023145
WidgetFormulaLimit:
2311123146
description: Options for limiting results returned.
2311223147
properties:
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
// Create a new dashboard with query_table widget and cell_display_mode is trend
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v1.api.DashboardsApi;
6+
import com.datadog.api.client.v1.model.Dashboard;
7+
import com.datadog.api.client.v1.model.DashboardLayoutType;
8+
import com.datadog.api.client.v1.model.FormulaAndFunctionMetricAggregation;
9+
import com.datadog.api.client.v1.model.FormulaAndFunctionMetricDataSource;
10+
import com.datadog.api.client.v1.model.FormulaAndFunctionMetricQueryDefinition;
11+
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
12+
import com.datadog.api.client.v1.model.FormulaAndFunctionResponseFormat;
13+
import com.datadog.api.client.v1.model.FormulaType;
14+
import com.datadog.api.client.v1.model.TableWidgetCellDisplayMode;
15+
import com.datadog.api.client.v1.model.TableWidgetDefinition;
16+
import com.datadog.api.client.v1.model.TableWidgetDefinitionType;
17+
import com.datadog.api.client.v1.model.TableWidgetHasSearchBar;
18+
import com.datadog.api.client.v1.model.TableWidgetRequest;
19+
import com.datadog.api.client.v1.model.Widget;
20+
import com.datadog.api.client.v1.model.WidgetDefinition;
21+
import com.datadog.api.client.v1.model.WidgetFormula;
22+
import com.datadog.api.client.v1.model.WidgetFormulaCellDisplayModeOptions;
23+
import com.datadog.api.client.v1.model.WidgetFormulaCellDisplayModeOptionsTrendType;
24+
import com.datadog.api.client.v1.model.WidgetFormulaCellDisplayModeOptionsYScale;
25+
import com.datadog.api.client.v1.model.WidgetFormulaSort;
26+
import com.datadog.api.client.v1.model.WidgetLayout;
27+
import com.datadog.api.client.v1.model.WidgetLegacyLiveSpan;
28+
import com.datadog.api.client.v1.model.WidgetSort;
29+
import com.datadog.api.client.v1.model.WidgetSortBy;
30+
import com.datadog.api.client.v1.model.WidgetSortOrderBy;
31+
import com.datadog.api.client.v1.model.WidgetTextAlign;
32+
import com.datadog.api.client.v1.model.WidgetTime;
33+
import java.util.Collections;
34+
35+
public class Example {
36+
public static void main(String[] args) {
37+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
38+
DashboardsApi apiInstance = new DashboardsApi(defaultClient);
39+
40+
Dashboard body =
41+
new Dashboard()
42+
.title("Example-Dashboard")
43+
.description("")
44+
.widgets(
45+
Collections.singletonList(
46+
new Widget()
47+
.layout(new WidgetLayout().x(0L).y(0L).width(54L).height(32L))
48+
.definition(
49+
new WidgetDefinition(
50+
new TableWidgetDefinition()
51+
.title("")
52+
.titleSize("16")
53+
.titleAlign(WidgetTextAlign.LEFT)
54+
.time(new WidgetTime(new WidgetLegacyLiveSpan()))
55+
.type(TableWidgetDefinitionType.QUERY_TABLE)
56+
.requests(
57+
Collections.singletonList(
58+
new TableWidgetRequest()
59+
.queries(
60+
Collections.singletonList(
61+
new FormulaAndFunctionQueryDefinition(
62+
new FormulaAndFunctionMetricQueryDefinition()
63+
.dataSource(
64+
FormulaAndFunctionMetricDataSource
65+
.METRICS)
66+
.name("query1")
67+
.query(
68+
"avg:system.cpu.user{*} by"
69+
+ " {host}")
70+
.aggregator(
71+
FormulaAndFunctionMetricAggregation
72+
.AVG))))
73+
.formulas(
74+
Collections.singletonList(
75+
new WidgetFormula()
76+
.formula("query1")
77+
.cellDisplayMode(
78+
TableWidgetCellDisplayMode.TREND)
79+
.cellDisplayModeOptions(
80+
new WidgetFormulaCellDisplayModeOptions()
81+
.trendType(
82+
WidgetFormulaCellDisplayModeOptionsTrendType
83+
.LINE)
84+
.yScale(
85+
WidgetFormulaCellDisplayModeOptionsYScale
86+
.SHARED))))
87+
.sort(
88+
new WidgetSortBy()
89+
.count(500L)
90+
.orderBy(
91+
Collections.singletonList(
92+
new WidgetSortOrderBy(
93+
new WidgetFormulaSort()
94+
.type(FormulaType.FORMULA)
95+
.index(0L)
96+
.order(
97+
WidgetSort
98+
.DESCENDING)))))
99+
.responseFormat(
100+
FormulaAndFunctionResponseFormat.SCALAR)))
101+
.hasSearchBar(TableWidgetHasSearchBar.AUTO)))))
102+
.layoutType(DashboardLayoutType.FREE);
103+
104+
try {
105+
Dashboard result = apiInstance.createDashboard(body);
106+
System.out.println(result);
107+
} catch (ApiException e) {
108+
System.err.println("Exception when calling DashboardsApi#createDashboard");
109+
System.err.println("Status code: " + e.getCode());
110+
System.err.println("Reason: " + e.getResponseBody());
111+
System.err.println("Response headers: " + e.getResponseHeaders());
112+
e.printStackTrace();
113+
}
114+
}
115+
}

src/main/java/com/datadog/api/client/v1/model/TableWidgetCellDisplayMode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@
2323
public class TableWidgetCellDisplayMode extends ModelEnum<String> {
2424

2525
private static final Set<String> allowedValues =
26-
new HashSet<String>(Arrays.asList("number", "bar"));
26+
new HashSet<String>(Arrays.asList("number", "bar", "trend"));
2727

2828
public static final TableWidgetCellDisplayMode NUMBER = new TableWidgetCellDisplayMode("number");
2929
public static final TableWidgetCellDisplayMode BAR = new TableWidgetCellDisplayMode("bar");
30+
public static final TableWidgetCellDisplayMode TREND = new TableWidgetCellDisplayMode("trend");
3031

3132
TableWidgetCellDisplayMode(String value) {
3233
super(value, allowedValues);

src/main/java/com/datadog/api/client/v1/model/WidgetFormula.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
@JsonPropertyOrder({
2424
WidgetFormula.JSON_PROPERTY_ALIAS,
2525
WidgetFormula.JSON_PROPERTY_CELL_DISPLAY_MODE,
26+
WidgetFormula.JSON_PROPERTY_CELL_DISPLAY_MODE_OPTIONS,
2627
WidgetFormula.JSON_PROPERTY_CONDITIONAL_FORMATS,
2728
WidgetFormula.JSON_PROPERTY_FORMULA,
2829
WidgetFormula.JSON_PROPERTY_LIMIT,
@@ -39,6 +40,9 @@ public class WidgetFormula {
3940
public static final String JSON_PROPERTY_CELL_DISPLAY_MODE = "cell_display_mode";
4041
private TableWidgetCellDisplayMode cellDisplayMode;
4142

43+
public static final String JSON_PROPERTY_CELL_DISPLAY_MODE_OPTIONS = "cell_display_mode_options";
44+
private WidgetFormulaCellDisplayModeOptions cellDisplayModeOptions;
45+
4246
public static final String JSON_PROPERTY_CONDITIONAL_FORMATS = "conditional_formats";
4347
private List<WidgetConditionalFormat> conditionalFormats = null;
4448

@@ -108,6 +112,31 @@ public void setCellDisplayMode(TableWidgetCellDisplayMode cellDisplayMode) {
108112
this.cellDisplayMode = cellDisplayMode;
109113
}
110114

115+
public WidgetFormula cellDisplayModeOptions(
116+
WidgetFormulaCellDisplayModeOptions cellDisplayModeOptions) {
117+
this.cellDisplayModeOptions = cellDisplayModeOptions;
118+
this.unparsed |= cellDisplayModeOptions.unparsed;
119+
return this;
120+
}
121+
122+
/**
123+
* Cell display mode options for the widget formula. (only if <code>cell_display_mode</code> is
124+
* set to <code>trend</code>).
125+
*
126+
* @return cellDisplayModeOptions
127+
*/
128+
@jakarta.annotation.Nullable
129+
@JsonProperty(JSON_PROPERTY_CELL_DISPLAY_MODE_OPTIONS)
130+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
131+
public WidgetFormulaCellDisplayModeOptions getCellDisplayModeOptions() {
132+
return cellDisplayModeOptions;
133+
}
134+
135+
public void setCellDisplayModeOptions(
136+
WidgetFormulaCellDisplayModeOptions cellDisplayModeOptions) {
137+
this.cellDisplayModeOptions = cellDisplayModeOptions;
138+
}
139+
111140
public WidgetFormula conditionalFormats(List<WidgetConditionalFormat> conditionalFormats) {
112141
this.conditionalFormats = conditionalFormats;
113142
for (WidgetConditionalFormat item : conditionalFormats) {
@@ -285,6 +314,7 @@ public boolean equals(Object o) {
285314
WidgetFormula widgetFormula = (WidgetFormula) o;
286315
return Objects.equals(this.alias, widgetFormula.alias)
287316
&& Objects.equals(this.cellDisplayMode, widgetFormula.cellDisplayMode)
317+
&& Objects.equals(this.cellDisplayModeOptions, widgetFormula.cellDisplayModeOptions)
288318
&& Objects.equals(this.conditionalFormats, widgetFormula.conditionalFormats)
289319
&& Objects.equals(this.formula, widgetFormula.formula)
290320
&& Objects.equals(this.limit, widgetFormula.limit)
@@ -298,6 +328,7 @@ public int hashCode() {
298328
return Objects.hash(
299329
alias,
300330
cellDisplayMode,
331+
cellDisplayModeOptions,
301332
conditionalFormats,
302333
formula,
303334
limit,
@@ -312,6 +343,9 @@ public String toString() {
312343
sb.append("class WidgetFormula {\n");
313344
sb.append(" alias: ").append(toIndentedString(alias)).append("\n");
314345
sb.append(" cellDisplayMode: ").append(toIndentedString(cellDisplayMode)).append("\n");
346+
sb.append(" cellDisplayModeOptions: ")
347+
.append(toIndentedString(cellDisplayModeOptions))
348+
.append("\n");
315349
sb.append(" conditionalFormats: ").append(toIndentedString(conditionalFormats)).append("\n");
316350
sb.append(" formula: ").append(toIndentedString(formula)).append("\n");
317351
sb.append(" limit: ").append(toIndentedString(limit)).append("\n");

0 commit comments

Comments
 (0)