From 76d2c1e4c8072809053d7473062d8ba3f6a2fb80 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 28 Jun 2023 20:37:21 +0000 Subject: [PATCH] Regenerate client from commit e0f0af3f of spec repo --- .apigentools-info | 8 +- .generator/schemas/v1/openapi.yaml | 17 +++- .../dashboards/CreateDashboard_3513586382.py | 98 +++++++++++++++++++ .../v1/model/change_widget_request.py | 2 +- .../formula_and_function_response_format.py | 7 +- .../v1/model/geomap_widget_request.py | 22 ++++- .../v1/model/query_value_widget_request.py | 2 +- .../v1/model/scatterplot_table_request.py | 2 +- .../v1/model/sunburst_widget_request.py | 2 +- .../v1/model/table_widget_request.py | 2 +- .../v1/model/timeseries_widget_request.py | 2 +- .../v1/model/toplist_widget_request.py | 2 +- .../v1/model/tree_map_widget_request.py | 2 +- ..._widget_using_an_event_list_request.frozen | 1 + ...ap_widget_using_an_event_list_request.yaml | 40 ++++++++ tests/v1/features/dashboards.feature | 9 ++ 16 files changed, 202 insertions(+), 16 deletions(-) create mode 100644 examples/v1/dashboards/CreateDashboard_3513586382.py create mode 100644 tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.frozen create mode 100644 tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.yaml diff --git a/.apigentools-info b/.apigentools-info index c3dd51f63f..74e61ccc27 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.4", - "regenerated": "2023-06-28 13:29:53.237675", - "spec_repo_commit": "042157e1" + "regenerated": "2023-06-28 20:35:54.929673", + "spec_repo_commit": "e0f0af3f" }, "v2": { "apigentools_version": "1.6.4", - "regenerated": "2023-06-28 13:29:53.250399", - "spec_repo_commit": "042157e1" + "regenerated": "2023-06-28 20:35:54.954768", + "spec_repo_commit": "e0f0af3f" } } } \ No newline at end of file diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 53dbf14adb..9df3db5777 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -2731,15 +2731,18 @@ components: - $ref: '#/components/schemas/FormulaAndFunctionSLOQueryDefinition' type: object FormulaAndFunctionResponseFormat: - description: Timeseries or Scalar response. + description: Timeseries, scalar, or event list response. Event list response + formats are supported by Geomap widgets. enum: - timeseries - scalar + - event_list example: timeseries type: string x-enum-varnames: - TIMESERIES - SCALAR + - EVENT_LIST FormulaAndFunctionSLODataSource: description: Data source for SLO measures queries. enum: @@ -3127,6 +3130,16 @@ components: GeomapWidgetRequest: description: An updated geomap widget. properties: + columns: + description: Widget columns. + example: + - field: timestamp + width: auto + - field: content + width: full + items: + $ref: '#/components/schemas/ListStreamColumn' + type: array formulas: description: List of formulas that operate on queries. items: @@ -3142,6 +3155,8 @@ components: items: $ref: '#/components/schemas/FormulaAndFunctionQueryDefinition' type: array + query: + $ref: '#/components/schemas/ListStreamQuery' response_format: $ref: '#/components/schemas/FormulaAndFunctionResponseFormat' rum_query: diff --git a/examples/v1/dashboards/CreateDashboard_3513586382.py b/examples/v1/dashboards/CreateDashboard_3513586382.py new file mode 100644 index 0000000000..f22e7596f9 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_3513586382.py @@ -0,0 +1,98 @@ +""" +Create a geomap widget using an event_list request +""" + +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.dashboard_reflow_type import DashboardReflowType +from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat +from datadog_api_client.v1.model.geomap_widget_definition import GeomapWidgetDefinition +from datadog_api_client.v1.model.geomap_widget_definition_style import GeomapWidgetDefinitionStyle +from datadog_api_client.v1.model.geomap_widget_definition_type import GeomapWidgetDefinitionType +from datadog_api_client.v1.model.geomap_widget_definition_view import GeomapWidgetDefinitionView +from datadog_api_client.v1.model.geomap_widget_request import GeomapWidgetRequest +from datadog_api_client.v1.model.list_stream_column import ListStreamColumn +from datadog_api_client.v1.model.list_stream_column_width import ListStreamColumnWidth +from datadog_api_client.v1.model.list_stream_query import ListStreamQuery +from datadog_api_client.v1.model.list_stream_source import ListStreamSource +from datadog_api_client.v1.model.widget import Widget +from datadog_api_client.v1.model.widget_layout import WidgetLayout +from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + +body = Dashboard( + title="Example-Dashboard", + description="Example-Dashboard", + widgets=[ + Widget( + definition=GeomapWidgetDefinition( + title="", + title_size="16", + title_align=WidgetTextAlign.LEFT, + type=GeomapWidgetDefinitionType.GEOMAP, + requests=[ + GeomapWidgetRequest( + response_format=FormulaAndFunctionResponseFormat.EVENT_LIST, + query=ListStreamQuery( + data_source=ListStreamSource.LOGS_STREAM, + query_string="", + indexes=[], + ), + columns=[ + ListStreamColumn( + field="@network.client.geoip.location.latitude", + width=ListStreamColumnWidth.AUTO, + ), + ListStreamColumn( + field="@network.client.geoip.location.longitude", + width=ListStreamColumnWidth.AUTO, + ), + ListStreamColumn( + field="@network.client.geoip.country.iso_code", + width=ListStreamColumnWidth.AUTO, + ), + ListStreamColumn( + field="@network.client.geoip.subdivision.name", + width=ListStreamColumnWidth.AUTO, + ), + ListStreamColumn( + field="classic", + width=ListStreamColumnWidth.AUTO, + ), + ListStreamColumn( + field="", + width=ListStreamColumnWidth.AUTO, + ), + ], + ), + ], + style=GeomapWidgetDefinitionStyle( + palette="hostmap_blues", + palette_flip=False, + ), + view=GeomapWidgetDefinitionView( + focus="WORLD", + ), + ), + layout=WidgetLayout( + x=0, + y=0, + width=12, + height=6, + ), + ), + ], + template_variables=[], + layout_type=DashboardLayoutType.ORDERED, + notify_list=[], + reflow_type=DashboardReflowType.FIXED, + tags=[], +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = DashboardsApi(api_client) + response = api_instance.create_dashboard(body=body) + + print(response) diff --git a/src/datadog_api_client/v1/model/change_widget_request.py b/src/datadog_api_client/v1/model/change_widget_request.py index 9526f27bc9..b206b45277 100644 --- a/src/datadog_api_client/v1/model/change_widget_request.py +++ b/src/datadog_api_client/v1/model/change_widget_request.py @@ -178,7 +178,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/formula_and_function_response_format.py b/src/datadog_api_client/v1/model/formula_and_function_response_format.py index 54339064d7..1eae38996f 100644 --- a/src/datadog_api_client/v1/model/formula_and_function_response_format.py +++ b/src/datadog_api_client/v1/model/formula_and_function_response_format.py @@ -14,18 +14,20 @@ class FormulaAndFunctionResponseFormat(ModelSimple): """ - Timeseries or Scalar response. + Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. - :param value: Must be one of ["timeseries", "scalar"]. + :param value: Must be one of ["timeseries", "scalar", "event_list"]. :type value: str """ allowed_values = { "timeseries", "scalar", + "event_list", } TIMESERIES: ClassVar["FormulaAndFunctionResponseFormat"] SCALAR: ClassVar["FormulaAndFunctionResponseFormat"] + EVENT_LIST: ClassVar["FormulaAndFunctionResponseFormat"] @cached_property def openapi_types(_): @@ -36,3 +38,4 @@ def openapi_types(_): FormulaAndFunctionResponseFormat.TIMESERIES = FormulaAndFunctionResponseFormat("timeseries") FormulaAndFunctionResponseFormat.SCALAR = FormulaAndFunctionResponseFormat("scalar") +FormulaAndFunctionResponseFormat.EVENT_LIST = FormulaAndFunctionResponseFormat("event_list") diff --git a/src/datadog_api_client/v1/model/geomap_widget_request.py b/src/datadog_api_client/v1/model/geomap_widget_request.py index df80e50382..9677042ba8 100644 --- a/src/datadog_api_client/v1/model/geomap_widget_request.py +++ b/src/datadog_api_client/v1/model/geomap_widget_request.py @@ -14,9 +14,11 @@ if TYPE_CHECKING: + from datadog_api_client.v1.model.list_stream_column import ListStreamColumn from datadog_api_client.v1.model.widget_formula import WidgetFormula from datadog_api_client.v1.model.log_query_definition import LogQueryDefinition from datadog_api_client.v1.model.formula_and_function_query_definition import FormulaAndFunctionQueryDefinition + from datadog_api_client.v1.model.list_stream_query import ListStreamQuery from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat from datadog_api_client.v1.model.formula_and_function_metric_query_definition import ( FormulaAndFunctionMetricQueryDefinition, @@ -41,26 +43,32 @@ class GeomapWidgetRequest(ModelNormal): @cached_property def openapi_types(_): + from datadog_api_client.v1.model.list_stream_column import ListStreamColumn from datadog_api_client.v1.model.widget_formula import WidgetFormula from datadog_api_client.v1.model.log_query_definition import LogQueryDefinition from datadog_api_client.v1.model.formula_and_function_query_definition import FormulaAndFunctionQueryDefinition + from datadog_api_client.v1.model.list_stream_query import ListStreamQuery from datadog_api_client.v1.model.formula_and_function_response_format import FormulaAndFunctionResponseFormat return { + "columns": ([ListStreamColumn],), "formulas": ([WidgetFormula],), "log_query": (LogQueryDefinition,), "q": (str,), "queries": ([FormulaAndFunctionQueryDefinition],), + "query": (ListStreamQuery,), "response_format": (FormulaAndFunctionResponseFormat,), "rum_query": (LogQueryDefinition,), "security_query": (LogQueryDefinition,), } attribute_map = { + "columns": "columns", "formulas": "formulas", "log_query": "log_query", "q": "q", "queries": "queries", + "query": "query", "response_format": "response_format", "rum_query": "rum_query", "security_query": "security_query", @@ -68,6 +76,7 @@ def openapi_types(_): def __init__( self_, + columns: Union[List[ListStreamColumn], UnsetType] = unset, formulas: Union[List[WidgetFormula], UnsetType] = unset, log_query: Union[LogQueryDefinition, UnsetType] = unset, q: Union[str, UnsetType] = unset, @@ -85,6 +94,7 @@ def __init__( ], UnsetType, ] = unset, + query: Union[ListStreamQuery, UnsetType] = unset, response_format: Union[FormulaAndFunctionResponseFormat, UnsetType] = unset, rum_query: Union[LogQueryDefinition, UnsetType] = unset, security_query: Union[LogQueryDefinition, UnsetType] = unset, @@ -93,6 +103,9 @@ def __init__( """ An updated geomap widget. + :param columns: Widget columns. + :type columns: [ListStreamColumn], optional + :param formulas: List of formulas that operate on queries. :type formulas: [WidgetFormula], optional @@ -105,7 +118,10 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param query: Updated list stream widget. + :type query: ListStreamQuery, optional + + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. @@ -114,6 +130,8 @@ def __init__( :param security_query: The log query. :type security_query: LogQueryDefinition, optional """ + if columns is not unset: + kwargs["columns"] = columns if formulas is not unset: kwargs["formulas"] = formulas if log_query is not unset: @@ -122,6 +140,8 @@ def __init__( kwargs["q"] = q if queries is not unset: kwargs["queries"] = queries + if query is not unset: + kwargs["query"] = query if response_format is not unset: kwargs["response_format"] = response_format if rum_query is not unset: diff --git a/src/datadog_api_client/v1/model/query_value_widget_request.py b/src/datadog_api_client/v1/model/query_value_widget_request.py index 2cee5cabcd..976b2df687 100644 --- a/src/datadog_api_client/v1/model/query_value_widget_request.py +++ b/src/datadog_api_client/v1/model/query_value_widget_request.py @@ -159,7 +159,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/scatterplot_table_request.py b/src/datadog_api_client/v1/model/scatterplot_table_request.py index 40dab92e89..47bafd87dc 100644 --- a/src/datadog_api_client/v1/model/scatterplot_table_request.py +++ b/src/datadog_api_client/v1/model/scatterplot_table_request.py @@ -85,7 +85,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional """ if formulas is not unset: diff --git a/src/datadog_api_client/v1/model/sunburst_widget_request.py b/src/datadog_api_client/v1/model/sunburst_widget_request.py index b85b0af41c..f347cc6efb 100644 --- a/src/datadog_api_client/v1/model/sunburst_widget_request.py +++ b/src/datadog_api_client/v1/model/sunburst_widget_request.py @@ -143,7 +143,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/table_widget_request.py b/src/datadog_api_client/v1/model/table_widget_request.py index 3cb3013b14..0f3806018c 100644 --- a/src/datadog_api_client/v1/model/table_widget_request.py +++ b/src/datadog_api_client/v1/model/table_widget_request.py @@ -189,7 +189,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/timeseries_widget_request.py b/src/datadog_api_client/v1/model/timeseries_widget_request.py index d5899f3fe2..2a1b6f0f63 100644 --- a/src/datadog_api_client/v1/model/timeseries_widget_request.py +++ b/src/datadog_api_client/v1/model/timeseries_widget_request.py @@ -170,7 +170,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/toplist_widget_request.py b/src/datadog_api_client/v1/model/toplist_widget_request.py index 830a6155a9..f63b9b8d5c 100644 --- a/src/datadog_api_client/v1/model/toplist_widget_request.py +++ b/src/datadog_api_client/v1/model/toplist_widget_request.py @@ -162,7 +162,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional :param rum_query: The log query. diff --git a/src/datadog_api_client/v1/model/tree_map_widget_request.py b/src/datadog_api_client/v1/model/tree_map_widget_request.py index cdd7c7175a..6e05e6c3f7 100644 --- a/src/datadog_api_client/v1/model/tree_map_widget_request.py +++ b/src/datadog_api_client/v1/model/tree_map_widget_request.py @@ -91,7 +91,7 @@ def __init__( :param queries: List of queries that can be returned directly or used in formulas. :type queries: [FormulaAndFunctionQueryDefinition], optional - :param response_format: Timeseries or Scalar response. + :param response_format: Timeseries, scalar, or event list response. Event list response formats are supported by Geomap widgets. :type response_format: FormulaAndFunctionResponseFormat, optional """ if formulas is not unset: diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.frozen b/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.frozen new file mode 100644 index 0000000000..4fd6fb9a82 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.frozen @@ -0,0 +1 @@ +2023-06-21T19:29:03.584Z \ No newline at end of file diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.yaml b/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.yaml new file mode 100644 index 0000000000..ab5be81254 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_geomap_widget_using_an_event_list_request.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"description":"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743","layout_type":"ordered","notify_list":[],"reflow_type":"fixed","tags":[],"template_variables":[],"title":"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743","widgets":[{"definition":{"requests":[{"columns":[{"field":"@network.client.geoip.location.latitude","width":"auto"},{"field":"@network.client.geoip.location.longitude","width":"auto"},{"field":"@network.client.geoip.country.iso_code","width":"auto"},{"field":"@network.client.geoip.subdivision.name","width":"auto"},{"field":"classic","width":"auto"},{"field":"","width":"auto"}],"query":{"data_source":"logs_stream","indexes":[],"query_string":""},"response_format":"event_list"}],"style":{"palette":"hostmap_blues","palette_flip":false},"title":"","title_align":"left","title_size":"16","type":"geomap","view":{"focus":"WORLD"}},"layout":{"height":6,"width":12,"x":0,"y":0}}]}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/dashboard + response: + body: + string: '{"id":"cn7-qfm-s9w","title":"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743","description":"Test-Create_a_geomap_widget_using_an_event_list_request-1687375743","author_handle":"frog@datadoghq.com","author_name":null,"layout_type":"ordered","url":"/dashboard/cn7-qfm-s9w/test-createageomapwidgetusinganeventlistrequest-1687375743","is_read_only":false,"template_variables":[],"widgets":[{"definition":{"requests":[{"columns":[{"field":"@network.client.geoip.location.latitude","width":"auto"},{"field":"@network.client.geoip.location.longitude","width":"auto"},{"field":"@network.client.geoip.country.iso_code","width":"auto"},{"field":"@network.client.geoip.subdivision.name","width":"auto"},{"field":"classic","width":"auto"},{"field":"","width":"auto"}],"query":{"data_source":"logs_stream","indexes":[],"query_string":""},"response_format":"event_list"}],"style":{"palette":"hostmap_blues","palette_flip":false},"title":"","title_align":"left","title_size":"16","type":"geomap","view":{"focus":"WORLD"}},"layout":{"height":6,"width":12,"x":0,"y":0},"id":8506811379916619}],"notify_list":[],"created_at":"2023-06-21T19:29:03.801081+00:00","modified_at":"2023-06-21T19:29:03.801081+00:00","reflow_type":"fixed","tags":[],"restricted_roles":[]} + + ' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/cn7-qfm-s9w + response: + body: + string: '{"deleted_dashboard_id":"cn7-qfm-s9w"} + + ' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v1/features/dashboards.feature b/tests/v1/features/dashboards.feature index 6a3349ebac..c41cb9df63 100644 --- a/tests/v1/features/dashboards.feature +++ b/tests/v1/features/dashboards.feature @@ -54,6 +54,15 @@ Feature: Dashboards And the response "widgets[0].definition.requests[0].query.data_source" is equal to "metrics" And the response "widgets[0].definition.requests[0].query.name" is equal to "query1" + @team:DataDog/dashboards-backend + Scenario: Create a geomap widget using an event_list request + Given new "CreateDashboard" request + And body with value {"title": "{{ unique }}","description": "{{ unique }}","widgets":[{"definition":{"title":"","title_size":"16","title_align":"left","type":"geomap","requests":[{"response_format":"event_list","query":{"data_source":"logs_stream","query_string":"","indexes":[]},"columns":[{"field":"@network.client.geoip.location.latitude","width":"auto"},{"field":"@network.client.geoip.location.longitude","width":"auto"},{"field":"@network.client.geoip.country.iso_code","width":"auto"},{"field":"@network.client.geoip.subdivision.name","width":"auto"},{"field":"classic","width":"auto"},{"field":"","width":"auto"}]}],"style":{"palette":"hostmap_blues","palette_flip":false},"view":{"focus":"WORLD"}},"layout":{"x":0,"y":0,"width":12,"height":6}}],"template_variables":[],"layout_type":"ordered","notify_list":[],"reflow_type":"fixed","tags":[]} + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.requests[0].response_format" is equal to "event_list" + And the response "widgets[0].definition.requests[0].query.data_source" is equal to "logs_stream" + @generated @skip @team:DataDog/dashboards-backend Scenario: Create a new dashboard returns "Bad Request" response Given new "CreateDashboard" request