Skip to content

Commit 0e83da4

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit fe8637d0 of spec repo
1 parent 160f34a commit 0e83da4

File tree

5 files changed

+129
-4
lines changed

5 files changed

+129
-4
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": "2024-09-24 18:16:22.924081",
8-
"spec_repo_commit": "2eb52c63"
7+
"regenerated": "2024-09-25 14:20:58.529527",
8+
"spec_repo_commit": "fe8637d0"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2024-09-24 18:16:22.938930",
13-
"spec_repo_commit": "2eb52c63"
12+
"regenerated": "2024-09-25 14:20:58.542891",
13+
"spec_repo_commit": "fe8637d0"
1414
}
1515
}
1616
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
"""
2+
Clients deserialize a dashboard with a empty time object
3+
"""
4+
5+
from datadog_api_client import ApiClient, Configuration
6+
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
7+
from datadog_api_client.v1.model.dashboard import Dashboard
8+
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
9+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_data_source import (
10+
FormulaAndFunctionCloudCostDataSource,
11+
)
12+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition import (
13+
FormulaAndFunctionCloudCostQueryDefinition,
14+
)
15+
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
16+
from datadog_api_client.v1.model.timeseries_widget_definition import TimeseriesWidgetDefinition
17+
from datadog_api_client.v1.model.timeseries_widget_definition_type import TimeseriesWidgetDefinitionType
18+
from datadog_api_client.v1.model.timeseries_widget_request import TimeseriesWidgetRequest
19+
from datadog_api_client.v1.model.widget import Widget
20+
from datadog_api_client.v1.model.widget_display_type import WidgetDisplayType
21+
from datadog_api_client.v1.model.widget_formula import WidgetFormula
22+
from datadog_api_client.v1.model.widget_legacy_live_span import WidgetLegacyLiveSpan
23+
from datadog_api_client.v1.model.widget_line_type import WidgetLineType
24+
from datadog_api_client.v1.model.widget_line_width import WidgetLineWidth
25+
from datadog_api_client.v1.model.widget_request_style import WidgetRequestStyle
26+
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign
27+
28+
body = Dashboard(
29+
title="Example-Dashboard",
30+
widgets=[
31+
Widget(
32+
definition=TimeseriesWidgetDefinition(
33+
title="Example Cloud Cost Query",
34+
title_size="16",
35+
title_align=WidgetTextAlign.LEFT,
36+
type=TimeseriesWidgetDefinitionType.TIMESERIES,
37+
requests=[
38+
TimeseriesWidgetRequest(
39+
formulas=[
40+
WidgetFormula(
41+
formula="query1",
42+
),
43+
],
44+
queries=[
45+
FormulaAndFunctionCloudCostQueryDefinition(
46+
data_source=FormulaAndFunctionCloudCostDataSource.CLOUD_COST,
47+
name="query1",
48+
query="sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)",
49+
),
50+
],
51+
response_format=FormulaAndFunctionResponseFormat.TIMESERIES,
52+
style=WidgetRequestStyle(
53+
palette="dog_classic",
54+
line_type=WidgetLineType.SOLID,
55+
line_width=WidgetLineWidth.NORMAL,
56+
),
57+
display_type=WidgetDisplayType.BARS,
58+
),
59+
],
60+
time=WidgetLegacyLiveSpan(),
61+
),
62+
),
63+
],
64+
layout_type=DashboardLayoutType.ORDERED,
65+
)
66+
67+
configuration = Configuration()
68+
with ApiClient(configuration) as api_client:
69+
api_instance = DashboardsApi(api_client)
70+
response = api_instance.create_dashboard(body=body)
71+
72+
print(response)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2024-09-24T19:19:31.807Z
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
interactions:
2+
- request:
3+
body: '{"layout_type":"ordered","title":"Test-Clients_deserialize_a_dashboard_with_a_empty_time_object-1727205571","widgets":[{"definition":{"requests":[{"display_type":"bars","formulas":[{"formula":"query1"}],"queries":[{"data_source":"cloud_cost","name":"query1","query":"sum:aws.cost.amortized{*}
4+
by {aws_product}.rollup(sum, monthly)"}],"response_format":"timeseries","style":{"line_type":"solid","line_width":"normal","palette":"dog_classic"}}],"time":{},"title":"Example
5+
Cloud Cost Query","title_align":"left","title_size":"16","type":"timeseries"}}]}'
6+
headers:
7+
accept:
8+
- application/json
9+
content-type:
10+
- application/json
11+
method: POST
12+
uri: https://api.datadoghq.com/api/v1/dashboard
13+
response:
14+
body:
15+
string: '{"id":"han-5zg-c32","title":"Test-Clients_deserialize_a_dashboard_with_a_empty_time_object-1727205571","description":null,"author_handle":"[email protected]","author_name":null,"layout_type":"ordered","url":"/dashboard/han-5zg-c32/test-clientsdeserializeadashboardwithaemptytimeobject-1727205571","is_read_only":false,"template_variables":null,"widgets":[{"definition":{"requests":[{"display_type":"bars","formulas":[{"formula":"query1"}],"queries":[{"data_source":"cloud_cost","name":"query1","query":"sum:aws.cost.amortized{*}
16+
by {aws_product}.rollup(sum, monthly)"}],"response_format":"timeseries","style":{"line_type":"solid","line_width":"normal","palette":"dog_classic"}}],"time":{},"title":"Example
17+
Cloud Cost Query","title_align":"left","title_size":"16","type":"timeseries"},"id":4274057372149908}],"notify_list":null,"created_at":"2024-09-24T19:19:32.071328+00:00","modified_at":"2024-09-24T19:19:32.071328+00:00","experience_type":"default","restricted_roles":[]}
18+
19+
'
20+
headers:
21+
content-type:
22+
- application/json
23+
status:
24+
code: 200
25+
message: OK
26+
- request:
27+
body: null
28+
headers:
29+
accept:
30+
- application/json
31+
method: DELETE
32+
uri: https://api.datadoghq.com/api/v1/dashboard/han-5zg-c32
33+
response:
34+
body:
35+
string: '{"deleted_dashboard_id":"han-5zg-c32"}
36+
37+
'
38+
headers:
39+
content-type:
40+
- application/json
41+
status:
42+
code: 200
43+
message: OK
44+
version: 1

tests/v1/features/dashboards.feature

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ Feature: Dashboards
99
And a valid "appKeyAuth" key in the system
1010
And an instance of "Dashboards" API
1111

12+
@replay-only @team:DataDog/dashboards-backend
13+
Scenario: Clients deserialize a dashboard with a empty time object
14+
Given new "CreateDashboard" request
15+
And body with value { "title": "{{ unique }}", "widgets": [ { "definition": { "title": "Example Cloud Cost Query", "title_size": "16", "title_align": "left", "type": "timeseries", "requests": [ { "formulas": [ { "formula": "query1" } ], "queries": [ { "data_source": "cloud_cost", "name": "query1", "query": "sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)" } ], "response_format": "timeseries", "style": { "palette": "dog_classic", "line_type": "solid", "line_width": "normal" }, "display_type": "bars" } ], "time": {} } } ], "layout_type": "ordered" }
16+
When the request is sent
17+
Then the response status is 200 OK
18+
And the response "widgets[0].definition.time" is equal to {}
19+
1220
@team:DataDog/dashboards-backend
1321
Scenario: Create a distribution widget using a histogram request containing a formulas and functions APM Stats query
1422
Given new "CreateDashboard" request

0 commit comments

Comments
 (0)