Skip to content

Commit 227a16c

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add cloud_cost data source and query definition to dashboards (#1569)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent df1dd54 commit 227a16c

20 files changed

+335
-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.5",
7-
"regenerated": "2023-07-11 14:36:55.813150",
8-
"spec_repo_commit": "7ca677d6"
7+
"regenerated": "2023-07-11 16:39:33.303769",
8+
"spec_repo_commit": "824086bb"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.5",
12-
"regenerated": "2023-07-11 14:36:55.830224",
13-
"spec_repo_commit": "7ca677d6"
12+
"regenerated": "2023-07-11 16:39:33.412435",
13+
"spec_repo_commit": "824086bb"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2466,6 +2466,38 @@ components:
24662466
- service
24672467
- stat
24682468
type: object
2469+
FormulaAndFunctionCloudCostDataSource:
2470+
description: Data source for Cloud Cost queries.
2471+
enum:
2472+
- cloud_cost
2473+
example: cloud_cost
2474+
type: string
2475+
x-enum-varnames:
2476+
- CLOUD_COST
2477+
FormulaAndFunctionCloudCostQueryDefinition:
2478+
description: A formula and functions Cloud Cost query.
2479+
example:
2480+
data_source: cloud_cost
2481+
name: query1
2482+
query: sum:aws.cost.amortized{*}
2483+
properties:
2484+
aggregator:
2485+
$ref: '#/components/schemas/WidgetAggregator'
2486+
data_source:
2487+
$ref: '#/components/schemas/FormulaAndFunctionCloudCostDataSource'
2488+
name:
2489+
description: Name of the query for use in formulas.
2490+
example: my_query
2491+
type: string
2492+
query:
2493+
description: Query for Cloud Cost data.
2494+
example: ''
2495+
type: string
2496+
required:
2497+
- data_source
2498+
- query
2499+
- name
2500+
type: object
24692501
FormulaAndFunctionEventAggregation:
24702502
description: Aggregation methods for event platform queries.
24712503
enum:
@@ -2729,6 +2761,7 @@ components:
27292761
- $ref: '#/components/schemas/FormulaAndFunctionApmDependencyStatsQueryDefinition'
27302762
- $ref: '#/components/schemas/FormulaAndFunctionApmResourceStatsQueryDefinition'
27312763
- $ref: '#/components/schemas/FormulaAndFunctionSLOQueryDefinition'
2764+
- $ref: '#/components/schemas/FormulaAndFunctionCloudCostQueryDefinition'
27322765
type: object
27332766
FormulaAndFunctionResponseFormat:
27342767
description: Timeseries, scalar, or event list response. Event list response

docs/datadog_api_client.v1.model.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,20 @@ formula\_and\_function\_apm\_resource\_stats\_query\_definition
750750
:members:
751751
:show-inheritance:
752752

753+
formula\_and\_function\_cloud\_cost\_data\_source
754+
-------------------------------------------------
755+
756+
.. automodule:: datadog_api_client.v1.model.formula_and_function_cloud_cost_data_source
757+
:members:
758+
:show-inheritance:
759+
760+
formula\_and\_function\_cloud\_cost\_query\_definition
761+
------------------------------------------------------
762+
763+
.. automodule:: datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition
764+
:members:
765+
:show-inheritance:
766+
753767
formula\_and\_function\_event\_aggregation
754768
------------------------------------------
755769

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
"""
2+
Create a new dashboard with a timeseries widget using formulas and functions cloud cost query
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_line_type import WidgetLineType
23+
from datadog_api_client.v1.model.widget_line_width import WidgetLineWidth
24+
from datadog_api_client.v1.model.widget_request_style import WidgetRequestStyle
25+
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign
26+
27+
body = Dashboard(
28+
title="Example-Dashboard",
29+
widgets=[
30+
Widget(
31+
definition=TimeseriesWidgetDefinition(
32+
title="Example Cloud Cost Query",
33+
title_size="16",
34+
title_align=WidgetTextAlign.LEFT,
35+
type=TimeseriesWidgetDefinitionType.TIMESERIES,
36+
requests=[
37+
TimeseriesWidgetRequest(
38+
formulas=[
39+
WidgetFormula(
40+
formula="query1",
41+
),
42+
],
43+
queries=[
44+
FormulaAndFunctionCloudCostQueryDefinition(
45+
data_source=FormulaAndFunctionCloudCostDataSource.CLOUD_COST,
46+
name="query1",
47+
query="sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)",
48+
),
49+
],
50+
response_format=FormulaAndFunctionResponseFormat.TIMESERIES,
51+
style=WidgetRequestStyle(
52+
palette="dog_classic",
53+
line_type=WidgetLineType.SOLID,
54+
line_width=WidgetLineWidth.NORMAL,
55+
),
56+
display_type=WidgetDisplayType.BARS,
57+
),
58+
],
59+
),
60+
),
61+
],
62+
layout_type=DashboardLayoutType.ORDERED,
63+
)
64+
65+
configuration = Configuration()
66+
with ApiClient(configuration) as api_client:
67+
api_instance = DashboardsApi(api_client)
68+
response = api_instance.create_dashboard(body=body)
69+
70+
print(response)

src/datadog_api_client/v1/model/change_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
4242
FormulaAndFunctionSLOQueryDefinition,
4343
)
44+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition import (
45+
FormulaAndFunctionCloudCostQueryDefinition,
46+
)
4447

4548

4649
class ChangeWidgetRequest(ModelNormal):
@@ -123,6 +126,7 @@ def __init__(
123126
FormulaAndFunctionApmDependencyStatsQueryDefinition,
124127
FormulaAndFunctionApmResourceStatsQueryDefinition,
125128
FormulaAndFunctionSLOQueryDefinition,
129+
FormulaAndFunctionCloudCostQueryDefinition,
126130
]
127131
],
128132
UnsetType,
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
7+
from datadog_api_client.model_utils import (
8+
ModelSimple,
9+
cached_property,
10+
)
11+
12+
from typing import ClassVar
13+
14+
15+
class FormulaAndFunctionCloudCostDataSource(ModelSimple):
16+
"""
17+
Data source for Cloud Cost queries.
18+
19+
:param value: If omitted defaults to "cloud_cost". Must be one of ["cloud_cost"].
20+
:type value: str
21+
"""
22+
23+
allowed_values = {
24+
"cloud_cost",
25+
}
26+
CLOUD_COST: ClassVar["FormulaAndFunctionCloudCostDataSource"]
27+
28+
@cached_property
29+
def openapi_types(_):
30+
return {
31+
"value": (str,),
32+
}
33+
34+
35+
FormulaAndFunctionCloudCostDataSource.CLOUD_COST = FormulaAndFunctionCloudCostDataSource("cloud_cost")
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
# This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
# Copyright 2019-Present Datadog, Inc.
4+
from __future__ import annotations
5+
6+
from typing import Union, TYPE_CHECKING
7+
8+
from datadog_api_client.model_utils import (
9+
ModelNormal,
10+
cached_property,
11+
unset,
12+
UnsetType,
13+
)
14+
15+
16+
if TYPE_CHECKING:
17+
from datadog_api_client.v1.model.widget_aggregator import WidgetAggregator
18+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_data_source import (
19+
FormulaAndFunctionCloudCostDataSource,
20+
)
21+
22+
23+
class FormulaAndFunctionCloudCostQueryDefinition(ModelNormal):
24+
@cached_property
25+
def openapi_types(_):
26+
from datadog_api_client.v1.model.widget_aggregator import WidgetAggregator
27+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_data_source import (
28+
FormulaAndFunctionCloudCostDataSource,
29+
)
30+
31+
return {
32+
"aggregator": (WidgetAggregator,),
33+
"data_source": (FormulaAndFunctionCloudCostDataSource,),
34+
"name": (str,),
35+
"query": (str,),
36+
}
37+
38+
attribute_map = {
39+
"aggregator": "aggregator",
40+
"data_source": "data_source",
41+
"name": "name",
42+
"query": "query",
43+
}
44+
45+
def __init__(
46+
self_,
47+
data_source: FormulaAndFunctionCloudCostDataSource,
48+
name: str,
49+
query: str,
50+
aggregator: Union[WidgetAggregator, UnsetType] = unset,
51+
**kwargs,
52+
):
53+
"""
54+
A formula and functions Cloud Cost query.
55+
56+
:param aggregator: Aggregator used for the request.
57+
:type aggregator: WidgetAggregator, optional
58+
59+
:param data_source: Data source for Cloud Cost queries.
60+
:type data_source: FormulaAndFunctionCloudCostDataSource
61+
62+
:param name: Name of the query for use in formulas.
63+
:type name: str
64+
65+
:param query: Query for Cloud Cost data.
66+
:type query: str
67+
"""
68+
if aggregator is not unset:
69+
kwargs["aggregator"] = aggregator
70+
super().__init__(kwargs)
71+
72+
self_.data_source = data_source
73+
self_.name = name
74+
self_.query = query

src/datadog_api_client/v1/model/formula_and_function_query_definition.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ def _composed_schemas(_):
128128
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
129129
FormulaAndFunctionSLOQueryDefinition,
130130
)
131+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition import (
132+
FormulaAndFunctionCloudCostQueryDefinition,
133+
)
131134

132135
return {
133136
"oneOf": [
@@ -137,5 +140,6 @@ def _composed_schemas(_):
137140
FormulaAndFunctionApmDependencyStatsQueryDefinition,
138141
FormulaAndFunctionApmResourceStatsQueryDefinition,
139142
FormulaAndFunctionSLOQueryDefinition,
143+
FormulaAndFunctionCloudCostQueryDefinition,
140144
],
141145
}

src/datadog_api_client/v1/model/geomap_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
3939
FormulaAndFunctionSLOQueryDefinition,
4040
)
41+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition import (
42+
FormulaAndFunctionCloudCostQueryDefinition,
43+
)
4144

4245

4346
class GeomapWidgetRequest(ModelNormal):
@@ -90,6 +93,7 @@ def __init__(
9093
FormulaAndFunctionApmDependencyStatsQueryDefinition,
9194
FormulaAndFunctionApmResourceStatsQueryDefinition,
9295
FormulaAndFunctionSLOQueryDefinition,
96+
FormulaAndFunctionCloudCostQueryDefinition,
9397
]
9498
],
9599
UnsetType,

src/datadog_api_client/v1/model/query_value_widget_request.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
from datadog_api_client.v1.model.formula_and_function_slo_query_definition import (
4040
FormulaAndFunctionSLOQueryDefinition,
4141
)
42+
from datadog_api_client.v1.model.formula_and_function_cloud_cost_query_definition import (
43+
FormulaAndFunctionCloudCostQueryDefinition,
44+
)
4245

4346

4447
class QueryValueWidgetRequest(ModelNormal):
@@ -111,6 +114,7 @@ def __init__(
111114
FormulaAndFunctionApmDependencyStatsQueryDefinition,
112115
FormulaAndFunctionApmResourceStatsQueryDefinition,
113116
FormulaAndFunctionSLOQueryDefinition,
117+
FormulaAndFunctionCloudCostQueryDefinition,
114118
]
115119
],
116120
UnsetType,

0 commit comments

Comments
 (0)