Skip to content

Commit 4210af3

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add ci_pipelines enum to FormulaAndFunctionEventsDataSource (#1363)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 9dc3887 commit 4210af3

File tree

7 files changed

+159
-5
lines changed

7 files changed

+159
-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.4",
7-
"regenerated": "2023-03-02 15:38:14.789500",
8-
"spec_repo_commit": "0ec7fe9d"
7+
"regenerated": "2023-03-02 16:19:50.759538",
8+
"spec_repo_commit": "e71b6cea"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.4",
12-
"regenerated": "2023-03-02 15:38:14.801240",
13-
"spec_repo_commit": "0ec7fe9d"
12+
"regenerated": "2023-03-02 16:19:50.770722",
13+
"spec_repo_commit": "e71b6cea"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2518,6 +2518,7 @@ components:
25182518
- audit
25192519
- events
25202520
- ci_tests
2521+
- ci_pipelines
25212522
example: logs
25222523
type: string
25232524
x-enum-varnames:
@@ -2530,6 +2531,7 @@ components:
25302531
- AUDIT
25312532
- EVENTS
25322533
- CI_TESTS
2534+
- CI_PIPELINES
25332535
FormulaAndFunctionMetricAggregation:
25342536
description: The aggregation methods available for metrics queries.
25352537
enum:
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
"""
2+
Create a new timeseries widget with ci_pipelines data source
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.dashboard_reflow_type import DashboardReflowType
10+
from datadog_api_client.v1.model.formula_and_function_event_aggregation import FormulaAndFunctionEventAggregation
11+
from datadog_api_client.v1.model.formula_and_function_event_query_definition import (
12+
FormulaAndFunctionEventQueryDefinition,
13+
)
14+
from datadog_api_client.v1.model.formula_and_function_event_query_definition_compute import (
15+
FormulaAndFunctionEventQueryDefinitionCompute,
16+
)
17+
from datadog_api_client.v1.model.formula_and_function_event_query_definition_search import (
18+
FormulaAndFunctionEventQueryDefinitionSearch,
19+
)
20+
from datadog_api_client.v1.model.formula_and_function_events_data_source import FormulaAndFunctionEventsDataSource
21+
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
22+
from datadog_api_client.v1.model.timeseries_widget_definition import TimeseriesWidgetDefinition
23+
from datadog_api_client.v1.model.timeseries_widget_definition_type import TimeseriesWidgetDefinitionType
24+
from datadog_api_client.v1.model.timeseries_widget_legend_column import TimeseriesWidgetLegendColumn
25+
from datadog_api_client.v1.model.timeseries_widget_legend_layout import TimeseriesWidgetLegendLayout
26+
from datadog_api_client.v1.model.timeseries_widget_request import TimeseriesWidgetRequest
27+
from datadog_api_client.v1.model.widget import Widget
28+
from datadog_api_client.v1.model.widget_display_type import WidgetDisplayType
29+
from datadog_api_client.v1.model.widget_formula import WidgetFormula
30+
from datadog_api_client.v1.model.widget_line_type import WidgetLineType
31+
from datadog_api_client.v1.model.widget_line_width import WidgetLineWidth
32+
from datadog_api_client.v1.model.widget_request_style import WidgetRequestStyle
33+
from datadog_api_client.v1.model.widget_time import WidgetTime
34+
35+
body = Dashboard(
36+
title="Example-Create_a_new_timeseries_widget_with_ci_pipelines_data_source with ci_pipelines datasource",
37+
widgets=[
38+
Widget(
39+
definition=TimeseriesWidgetDefinition(
40+
title="",
41+
show_legend=True,
42+
legend_layout=TimeseriesWidgetLegendLayout.AUTO,
43+
legend_columns=[
44+
TimeseriesWidgetLegendColumn.AVG,
45+
TimeseriesWidgetLegendColumn.MIN,
46+
TimeseriesWidgetLegendColumn.MAX,
47+
TimeseriesWidgetLegendColumn.VALUE,
48+
TimeseriesWidgetLegendColumn.SUM,
49+
],
50+
time=WidgetTime(),
51+
type=TimeseriesWidgetDefinitionType.TIMESERIES,
52+
requests=[
53+
TimeseriesWidgetRequest(
54+
formulas=[
55+
WidgetFormula(
56+
formula="query1",
57+
),
58+
],
59+
queries=[
60+
FormulaAndFunctionEventQueryDefinition(
61+
data_source=FormulaAndFunctionEventsDataSource.CI_PIPELINES,
62+
name="query1",
63+
search=FormulaAndFunctionEventQueryDefinitionSearch(
64+
query="ci_level:job",
65+
),
66+
indexes=[
67+
"*",
68+
],
69+
compute=FormulaAndFunctionEventQueryDefinitionCompute(
70+
aggregation=FormulaAndFunctionEventAggregation.COUNT,
71+
metric="@ci.queue_time",
72+
),
73+
group_by=[],
74+
),
75+
],
76+
response_format=FormulaAndFunctionResponseFormat.TIMESERIES,
77+
style=WidgetRequestStyle(
78+
palette="dog_classic",
79+
line_type=WidgetLineType.SOLID,
80+
line_width=WidgetLineWidth.NORMAL,
81+
),
82+
display_type=WidgetDisplayType.LINE,
83+
),
84+
],
85+
),
86+
),
87+
],
88+
layout_type=DashboardLayoutType.ORDERED,
89+
reflow_type=DashboardReflowType.AUTO,
90+
)
91+
92+
configuration = Configuration()
93+
with ApiClient(configuration) as api_client:
94+
api_instance = DashboardsApi(api_client)
95+
response = api_instance.create_dashboard(body=body)
96+
97+
print(response)

src/datadog_api_client/v1/model/formula_and_function_events_data_source.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class FormulaAndFunctionEventsDataSource(ModelSimple):
1616
"""
1717
Data source for event platform-based queries.
1818
19-
:param value: Must be one of ["logs", "spans", "network", "rum", "security_signals", "profiles", "audit", "events", "ci_tests"].
19+
:param value: Must be one of ["logs", "spans", "network", "rum", "security_signals", "profiles", "audit", "events", "ci_tests", "ci_pipelines"].
2020
:type value: str
2121
"""
2222

@@ -30,6 +30,7 @@ class FormulaAndFunctionEventsDataSource(ModelSimple):
3030
"audit",
3131
"events",
3232
"ci_tests",
33+
"ci_pipelines",
3334
}
3435
LOGS: ClassVar["FormulaAndFunctionEventsDataSource"]
3536
SPANS: ClassVar["FormulaAndFunctionEventsDataSource"]
@@ -40,6 +41,7 @@ class FormulaAndFunctionEventsDataSource(ModelSimple):
4041
AUDIT: ClassVar["FormulaAndFunctionEventsDataSource"]
4142
EVENTS: ClassVar["FormulaAndFunctionEventsDataSource"]
4243
CI_TESTS: ClassVar["FormulaAndFunctionEventsDataSource"]
44+
CI_PIPELINES: ClassVar["FormulaAndFunctionEventsDataSource"]
4345

4446
@cached_property
4547
def openapi_types(_):
@@ -57,3 +59,4 @@ def openapi_types(_):
5759
FormulaAndFunctionEventsDataSource.AUDIT = FormulaAndFunctionEventsDataSource("audit")
5860
FormulaAndFunctionEventsDataSource.EVENTS = FormulaAndFunctionEventsDataSource("events")
5961
FormulaAndFunctionEventsDataSource.CI_TESTS = FormulaAndFunctionEventsDataSource("ci_tests")
62+
FormulaAndFunctionEventsDataSource.CI_PIPELINES = FormulaAndFunctionEventsDataSource("ci_pipelines")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2023-03-02T15:41:16.500Z
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
interactions:
2+
- request:
3+
body: '{"layout_type":"ordered","reflow_type":"auto","title":"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676
4+
with ci_pipelines datasource","widgets":[{"definition":{"legend_columns":["avg","min","max","value","sum"],"legend_layout":"auto","requests":[{"display_type":"line","formulas":[{"formula":"query1"}],"queries":[{"compute":{"aggregation":"count","metric":"@ci.queue_time"},"data_source":"ci_pipelines","group_by":[],"indexes":["*"],"name":"query1","search":{"query":"ci_level:job"}}],"response_format":"timeseries","style":{"line_type":"solid","line_width":"normal","palette":"dog_classic"}}],"show_legend":true,"time":{},"title":"","type":"timeseries"}}]}'
5+
headers:
6+
accept:
7+
- application/json
8+
content-type:
9+
- application/json
10+
method: POST
11+
uri: https://api.datadoghq.com/api/v1/dashboard
12+
response:
13+
body:
14+
string: '{"id":"iu9-viw-buz","title":"Test-Create_a_new_timeseries_widget_with_ci_pipelines_data_source-1677771676
15+
with ci_pipelines datasource","description":null,"author_handle":"[email protected]","author_name":null,"layout_type":"ordered","url":"/dashboard/iu9-viw-buz/test-createanewtimeserieswidgetwithcipipelinesdatasource-1677771676-with-cipipel","is_read_only":false,"template_variables":null,"widgets":[{"definition":{"legend_columns":["avg","min","max","value","sum"],"legend_layout":"auto","requests":[{"display_type":"line","formulas":[{"formula":"query1"}],"queries":[{"compute":{"aggregation":"count","metric":"@ci.queue_time"},"data_source":"ci_pipelines","group_by":[],"indexes":["*"],"name":"query1","search":{"query":"ci_level:job"}}],"response_format":"timeseries","style":{"line_type":"solid","line_width":"normal","palette":"dog_classic"}}],"show_legend":true,"time":{},"title":"","type":"timeseries"},"id":2105687409669278}],"notify_list":null,"created_at":"2023-03-02T15:41:16.697612+00:00","modified_at":"2023-03-02T15:41:16.697612+00:00","reflow_type":"auto","restricted_roles":[]}
16+
17+
'
18+
headers:
19+
content-type:
20+
- application/json
21+
status:
22+
code: 200
23+
message: OK
24+
- request:
25+
body: null
26+
headers:
27+
accept:
28+
- application/json
29+
method: DELETE
30+
uri: https://api.datadoghq.com/api/v1/dashboard/iu9-viw-buz
31+
response:
32+
body:
33+
string: '{"deleted_dashboard_id":"iu9-viw-buz"}
34+
35+
'
36+
headers:
37+
content-type:
38+
- application/json
39+
status:
40+
code: 200
41+
message: OK
42+
version: 1

tests/v1/features/dashboards.feature

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,15 @@ Feature: Dashboards
620620
And the response "widgets[0].definition.type" is equal to "trace_service"
621621
And the response "widgets[0].definition.env" is equal to "none"
622622

623+
@team:DataDog/dashboards
624+
Scenario: Create a new timeseries widget with ci_pipelines data source
625+
Given new "CreateDashboard" request
626+
And body with value {"title":"{{ unique }} with ci_pipelines datasource","widgets":[{"definition":{"title":"","show_legend":true,"legend_layout":"auto","legend_columns":["avg","min","max","value","sum"],"time":{},"type":"timeseries","requests":[{"formulas":[{"formula":"query1"}],"queries":[{"data_source":"ci_pipelines","name":"query1","search":{"query":"ci_level:job"},"indexes":["*"],"compute":{"aggregation":"count", "metric": "@ci.queue_time"},"group_by":[]}],"response_format":"timeseries","style":{"palette":"dog_classic","line_type":"solid","line_width":"normal"},"display_type":"line"}]}}],"layout_type":"ordered","reflow_type":"auto"}
627+
When the request is sent
628+
Then the response status is 200 OK
629+
And the response "widgets[0].definition.requests[0].queries[0].data_source" is equal to "ci_pipelines"
630+
And the response "widgets[0].definition.requests[0].queries[0].search.query" is equal to "ci_level:job"
631+
623632
@team:DataDog/dashboards
624633
Scenario: Create a new timeseries widget with ci_tests data source
625634
Given new "CreateDashboard" request

0 commit comments

Comments
 (0)