Skip to content

Add trend support for cell_display_mode #2409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
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
8 changes: 4 additions & 4 deletions .apigentools-info
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"spec_versions": {
"v1": {
"apigentools_version": "1.6.6",
"regenerated": "2025-02-20 18:33:39.071911",
"spec_repo_commit": "d3fcdb89"
"regenerated": "2025-02-21 08:00:34.129753",
"spec_repo_commit": "8f2d39c3"
},
"v2": {
"apigentools_version": "1.6.6",
"regenerated": "2025-02-20 18:33:39.118129",
"spec_repo_commit": "d3fcdb89"
"regenerated": "2025-02-21 08:00:34.144342",
"spec_repo_commit": "8f2d39c3"
}
}
}
35 changes: 35 additions & 0 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17396,11 +17396,13 @@ components:
enum:
- number
- bar
- trend
example: number
type: string
x-enum-varnames:
- NUMBER
- BAR
- TREND
TableWidgetDefinition:
description: The table visualization is available on timeboards and screenboards.
It displays columns of metrics grouped by tag key.
Expand Down Expand Up @@ -23089,6 +23091,8 @@ components:
type: string
cell_display_mode:
$ref: '#/components/schemas/TableWidgetCellDisplayMode'
cell_display_mode_options:
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptions'
conditional_formats:
description: List of conditional formats.
items:
Expand All @@ -23107,6 +23111,37 @@ components:
required:
- formula
type: object
WidgetFormulaCellDisplayModeOptions:
description: Cell display mode options for the widget formula. (only if `cell_display_mode`
is set to `trend`).
properties:
trend_type:
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptionsTrendType'
y_scale:
$ref: '#/components/schemas/WidgetFormulaCellDisplayModeOptionsYScale'
type: object
WidgetFormulaCellDisplayModeOptionsTrendType:
description: Trend type for the cell display mode options.
enum:
- area
- line
- bars
example: area
type: string
x-enum-varnames:
- AREA
- LINE
- BARS
WidgetFormulaCellDisplayModeOptionsYScale:
description: Y scale for the cell display mode options.
enum:
- shared
- independent
example: shared
type: string
x-enum-varnames:
- SHARED
- INDEPENDENT
WidgetFormulaLimit:
description: Options for limiting results returned.
properties:
Expand Down
21 changes: 21 additions & 0 deletions docs/datadog_api_client.v1.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6178,6 +6178,27 @@ datadog\_api\_client.v1.model.widget\_formula module
:members:
:show-inheritance:

datadog\_api\_client.v1.model.widget\_formula\_cell\_display\_mode\_options module
----------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.widget_formula_cell_display_mode_options
:members:
:show-inheritance:

datadog\_api\_client.v1.model.widget\_formula\_cell\_display\_mode\_options\_trend\_type module
-----------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.widget_formula_cell_display_mode_options_trend_type
:members:
:show-inheritance:

datadog\_api\_client.v1.model.widget\_formula\_cell\_display\_mode\_options\_y\_scale module
--------------------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v1.model.widget_formula_cell_display_mode_options_y_scale
:members:
:show-inheritance:

datadog\_api\_client.v1.model.widget\_formula\_limit module
-----------------------------------------------------------

Expand Down
102 changes: 102 additions & 0 deletions examples/v1/dashboards/CreateDashboard_1490099434.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
"""
Create a new dashboard with query_table widget and cell_display_mode is trend
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.dashboards_api import DashboardsApi
from datadog_api_client.v1.model.dashboard import Dashboard
from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType
from datadog_api_client.v1.model.formula_and_function_metric_aggregation import FormulaAndFunctionMetricAggregation
from datadog_api_client.v1.model.formula_and_function_metric_data_source import FormulaAndFunctionMetricDataSource
from datadog_api_client.v1.model.formula_and_function_metric_query_definition import (
FormulaAndFunctionMetricQueryDefinition,
)
from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat
from datadog_api_client.v1.model.formula_type import FormulaType
from datadog_api_client.v1.model.table_widget_cell_display_mode import TableWidgetCellDisplayMode
from datadog_api_client.v1.model.table_widget_definition import TableWidgetDefinition
from datadog_api_client.v1.model.table_widget_definition_type import TableWidgetDefinitionType
from datadog_api_client.v1.model.table_widget_has_search_bar import TableWidgetHasSearchBar
from datadog_api_client.v1.model.table_widget_request import TableWidgetRequest
from datadog_api_client.v1.model.widget import Widget
from datadog_api_client.v1.model.widget_formula import WidgetFormula
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options import WidgetFormulaCellDisplayModeOptions
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_trend_type import (
WidgetFormulaCellDisplayModeOptionsTrendType,
)
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_y_scale import (
WidgetFormulaCellDisplayModeOptionsYScale,
)
from datadog_api_client.v1.model.widget_formula_sort import WidgetFormulaSort
from datadog_api_client.v1.model.widget_layout import WidgetLayout
from datadog_api_client.v1.model.widget_legacy_live_span import WidgetLegacyLiveSpan
from datadog_api_client.v1.model.widget_sort import WidgetSort
from datadog_api_client.v1.model.widget_sort_by import WidgetSortBy
from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign

body = Dashboard(
title="Example-Dashboard",
description="",
widgets=[
Widget(
layout=WidgetLayout(
x=0,
y=0,
width=54,
height=32,
),
definition=TableWidgetDefinition(
title="",
title_size="16",
title_align=WidgetTextAlign.LEFT,
time=WidgetLegacyLiveSpan(),
type=TableWidgetDefinitionType.QUERY_TABLE,
requests=[
TableWidgetRequest(
queries=[
FormulaAndFunctionMetricQueryDefinition(
data_source=FormulaAndFunctionMetricDataSource.METRICS,
name="query1",
query="avg:system.cpu.user{*} by {host}",
aggregator=FormulaAndFunctionMetricAggregation.AVG,
),
],
formulas=[
WidgetFormula(
formula="query1",
conditional_formats=[],
cell_display_mode=TableWidgetCellDisplayMode.TREND,
cell_display_mode_options=WidgetFormulaCellDisplayModeOptions(
trend_type=WidgetFormulaCellDisplayModeOptionsTrendType.LINE,
y_scale=WidgetFormulaCellDisplayModeOptionsYScale.SHARED,
),
),
],
sort=WidgetSortBy(
count=500,
order_by=[
WidgetFormulaSort(
type=FormulaType.FORMULA,
index=0,
order=WidgetSort.DESCENDING,
),
],
),
response_format=FormulaAndFunctionResponseFormat.SCALAR,
),
],
has_search_bar=TableWidgetHasSearchBar.AUTO,
),
),
],
template_variables=[],
layout_type=DashboardLayoutType.FREE,
notify_list=[],
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = DashboardsApi(api_client)
response = api_instance.create_dashboard(body=body)

print(response)
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@ class TableWidgetCellDisplayMode(ModelSimple):
"""
Define a display mode for the table cell.

:param value: Must be one of ["number", "bar"].
:param value: Must be one of ["number", "bar", "trend"].
:type value: str
"""

allowed_values = {
"number",
"bar",
"trend",
}
NUMBER: ClassVar["TableWidgetCellDisplayMode"]
BAR: ClassVar["TableWidgetCellDisplayMode"]
TREND: ClassVar["TableWidgetCellDisplayMode"]

@cached_property
def openapi_types(_):
Expand All @@ -36,3 +38,4 @@ def openapi_types(_):

TableWidgetCellDisplayMode.NUMBER = TableWidgetCellDisplayMode("number")
TableWidgetCellDisplayMode.BAR = TableWidgetCellDisplayMode("bar")
TableWidgetCellDisplayMode.TREND = TableWidgetCellDisplayMode("trend")
12 changes: 12 additions & 0 deletions src/datadog_api_client/v1/model/widget_formula.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

if TYPE_CHECKING:
from datadog_api_client.v1.model.table_widget_cell_display_mode import TableWidgetCellDisplayMode
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options import WidgetFormulaCellDisplayModeOptions
from datadog_api_client.v1.model.widget_conditional_format import WidgetConditionalFormat
from datadog_api_client.v1.model.widget_formula_limit import WidgetFormulaLimit
from datadog_api_client.v1.model.widget_number_format import WidgetNumberFormat
Expand All @@ -25,6 +26,9 @@ class WidgetFormula(ModelNormal):
@cached_property
def openapi_types(_):
from datadog_api_client.v1.model.table_widget_cell_display_mode import TableWidgetCellDisplayMode
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options import (
WidgetFormulaCellDisplayModeOptions,
)
from datadog_api_client.v1.model.widget_conditional_format import WidgetConditionalFormat
from datadog_api_client.v1.model.widget_formula_limit import WidgetFormulaLimit
from datadog_api_client.v1.model.widget_number_format import WidgetNumberFormat
Expand All @@ -33,6 +37,7 @@ def openapi_types(_):
return {
"alias": (str,),
"cell_display_mode": (TableWidgetCellDisplayMode,),
"cell_display_mode_options": (WidgetFormulaCellDisplayModeOptions,),
"conditional_formats": ([WidgetConditionalFormat],),
"formula": (str,),
"limit": (WidgetFormulaLimit,),
Expand All @@ -43,6 +48,7 @@ def openapi_types(_):
attribute_map = {
"alias": "alias",
"cell_display_mode": "cell_display_mode",
"cell_display_mode_options": "cell_display_mode_options",
"conditional_formats": "conditional_formats",
"formula": "formula",
"limit": "limit",
Expand All @@ -55,6 +61,7 @@ def __init__(
formula: str,
alias: Union[str, UnsetType] = unset,
cell_display_mode: Union[TableWidgetCellDisplayMode, UnsetType] = unset,
cell_display_mode_options: Union[WidgetFormulaCellDisplayModeOptions, UnsetType] = unset,
conditional_formats: Union[List[WidgetConditionalFormat], UnsetType] = unset,
limit: Union[WidgetFormulaLimit, UnsetType] = unset,
number_format: Union[WidgetNumberFormat, UnsetType] = unset,
Expand All @@ -70,6 +77,9 @@ def __init__(
:param cell_display_mode: Define a display mode for the table cell.
:type cell_display_mode: TableWidgetCellDisplayMode, optional

:param cell_display_mode_options: Cell display mode options for the widget formula. (only if ``cell_display_mode`` is set to ``trend`` ).
:type cell_display_mode_options: WidgetFormulaCellDisplayModeOptions, optional

:param conditional_formats: List of conditional formats.
:type conditional_formats: [WidgetConditionalFormat], optional

Expand All @@ -89,6 +99,8 @@ def __init__(
kwargs["alias"] = alias
if cell_display_mode is not unset:
kwargs["cell_display_mode"] = cell_display_mode
if cell_display_mode_options is not unset:
kwargs["cell_display_mode_options"] = cell_display_mode_options
if conditional_formats is not unset:
kwargs["conditional_formats"] = conditional_formats
if limit is not unset:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/).
# Copyright 2019-Present Datadog, Inc.
from __future__ import annotations

from typing import Union, TYPE_CHECKING

from datadog_api_client.model_utils import (
ModelNormal,
cached_property,
unset,
UnsetType,
)


if TYPE_CHECKING:
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_trend_type import (
WidgetFormulaCellDisplayModeOptionsTrendType,
)
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_y_scale import (
WidgetFormulaCellDisplayModeOptionsYScale,
)


class WidgetFormulaCellDisplayModeOptions(ModelNormal):
@cached_property
def openapi_types(_):
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_trend_type import (
WidgetFormulaCellDisplayModeOptionsTrendType,
)
from datadog_api_client.v1.model.widget_formula_cell_display_mode_options_y_scale import (
WidgetFormulaCellDisplayModeOptionsYScale,
)

return {
"trend_type": (WidgetFormulaCellDisplayModeOptionsTrendType,),
"y_scale": (WidgetFormulaCellDisplayModeOptionsYScale,),
}

attribute_map = {
"trend_type": "trend_type",
"y_scale": "y_scale",
}

def __init__(
self_,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Code Quality Violation

Suggested change
self_,
self,
first parameter of a class function should be self (...read more)

In a class method (that is not a class method nor a static method), the first argument must be self by convention.

Learn More

View in Datadog  Leave us feedback  Documentation

trend_type: Union[WidgetFormulaCellDisplayModeOptionsTrendType, UnsetType] = unset,
y_scale: Union[WidgetFormulaCellDisplayModeOptionsYScale, UnsetType] = unset,
**kwargs,
):
"""
Cell display mode options for the widget formula. (only if ``cell_display_mode`` is set to ``trend`` ).

:param trend_type: Trend type for the cell display mode options.
:type trend_type: WidgetFormulaCellDisplayModeOptionsTrendType, optional

:param y_scale: Y scale for the cell display mode options.
:type y_scale: WidgetFormulaCellDisplayModeOptionsYScale, optional
"""
if trend_type is not unset:
kwargs["trend_type"] = trend_type
if y_scale is not unset:
kwargs["y_scale"] = y_scale
super().__init__(kwargs)
Loading