From 3735dc003fc14f9c755e786ee5989eebe2493a1e Mon Sep 17 00:00:00 2001 From: Miguel Pragosa <154613770+mpragosa-te@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:10:34 +0100 Subject: [PATCH] [GitHub Bot] Generated python SDK (#160) Co-authored-by: API Team --- thousandeyes-sdk-administrative/README.md | 2 +- thousandeyes-sdk-agents/README.md | 2 +- thousandeyes-sdk-alerts/README.md | 2 +- thousandeyes-sdk-alerts/docs/AlertsApi.md | 2 +- .../thousandeyes_sdk/alerts/api/alerts_api.py | 8 +- thousandeyes-sdk-bgp-monitors/README.md | 2 +- thousandeyes-sdk-connectors/README.md | 2 +- thousandeyes-sdk-credentials/README.md | 2 +- .../.openapi-generator/FILES | 4 + thousandeyes-sdk-dashboards/README.md | 4 +- .../docs/ApiHeatmapWidget.md | 50 ++++++ thousandeyes-sdk-dashboards/docs/ApiWidget.md | 4 +- .../docs/HeatmapDatasource.md | 12 ++ .../thousandeyes_sdk/dashboards/__init__.py | 2 + .../dashboards/models/__init__.py | 2 + .../dashboards/models/api_heatmap_widget.py | 161 ++++++++++++++++++ .../dashboards/models/api_widget.py | 48 ++++-- .../dashboards/models/heatmap_datasource.py | 52 ++++++ thousandeyes-sdk-emulation/README.md | 2 +- thousandeyes-sdk-endpoint-agents/README.md | 2 +- .../README.md | 2 +- thousandeyes-sdk-endpoint-labels/README.md | 2 +- .../README.md | 2 +- thousandeyes-sdk-endpoint-tests/README.md | 2 +- thousandeyes-sdk-event-detection/README.md | 2 +- thousandeyes-sdk-instant-tests/README.md | 2 +- thousandeyes-sdk-internet-insights/README.md | 2 +- thousandeyes-sdk-snapshots/README.md | 2 +- thousandeyes-sdk-streaming/README.md | 2 +- thousandeyes-sdk-tags/README.md | 2 +- thousandeyes-sdk-test-results/README.md | 2 +- thousandeyes-sdk-tests/README.md | 2 +- thousandeyes-sdk-usage/README.md | 2 +- 33 files changed, 345 insertions(+), 46 deletions(-) create mode 100644 thousandeyes-sdk-dashboards/docs/ApiHeatmapWidget.md create mode 100644 thousandeyes-sdk-dashboards/docs/HeatmapDatasource.md create mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_heatmap_widget.py create mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/heatmap_datasource.py diff --git a/thousandeyes-sdk-administrative/README.md b/thousandeyes-sdk-administrative/README.md index d5ee55a9..a76d0d6b 100644 --- a/thousandeyes-sdk-administrative/README.md +++ b/thousandeyes-sdk-administrative/README.md @@ -12,7 +12,7 @@ This API provides the following operations to manage your organization: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-agents/README.md b/thousandeyes-sdk-agents/README.md index 65b150a5..68566cb4 100644 --- a/thousandeyes-sdk-agents/README.md +++ b/thousandeyes-sdk-agents/README.md @@ -5,7 +5,7 @@ Manage Cloud and Enterprise Agents available to your account in ThousandEyes. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-alerts/README.md b/thousandeyes-sdk-alerts/README.md index 26742524..8e4890d2 100644 --- a/thousandeyes-sdk-alerts/README.md +++ b/thousandeyes-sdk-alerts/README.md @@ -14,7 +14,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-alerts/docs/AlertsApi.md b/thousandeyes-sdk-alerts/docs/AlertsApi.md index 2763bdea..846f80db 100644 --- a/thousandeyes-sdk-alerts/docs/AlertsApi.md +++ b/thousandeyes-sdk-alerts/docs/AlertsApi.md @@ -98,7 +98,7 @@ Name | Type | Description | Notes List alerts -Returns a list of alerts. Only active (triggered) alerts are returned by default. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. +Returns a list of alerts. Only active (triggered) alerts are returned by default. When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a lookback interval ending at the current request time. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. ### Example diff --git a/thousandeyes-sdk-alerts/src/thousandeyes_sdk/alerts/api/alerts_api.py b/thousandeyes-sdk-alerts/src/thousandeyes_sdk/alerts/api/alerts_api.py index 98fffbc8..f7375d7b 100644 --- a/thousandeyes-sdk-alerts/src/thousandeyes_sdk/alerts/api/alerts_api.py +++ b/thousandeyes-sdk-alerts/src/thousandeyes_sdk/alerts/api/alerts_api.py @@ -363,7 +363,7 @@ class AlertsApi: ) -> PaginationIterable: """List alerts - Returns a list of alerts. Only active (triggered) alerts are returned by default. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. + Returns a list of alerts. Only active (triggered) alerts are returned by default. When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a lookback interval ending at the current request time. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str @@ -437,7 +437,7 @@ class AlertsApi: ) -> Alerts: """List alerts - Returns a list of alerts. Only active (triggered) alerts are returned by default. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. + Returns a list of alerts. Only active (triggered) alerts are returned by default. When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a lookback interval ending at the current request time. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str @@ -534,7 +534,7 @@ class AlertsApi: ) -> ApiResponse[Alerts]: """List alerts - Returns a list of alerts. Only active (triggered) alerts are returned by default. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. + Returns a list of alerts. Only active (triggered) alerts are returned by default. When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a lookback interval ending at the current request time. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str @@ -631,7 +631,7 @@ class AlertsApi: ) -> RESTResponseType: """List alerts - Returns a list of alerts. Only active (triggered) alerts are returned by default. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. + Returns a list of alerts. Only active (triggered) alerts are returned by default. When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a lookback interval ending at the current request time. To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed. Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`: filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified: returns cleared alerts within the time range plus any currently active alerts that started before the end of the range. :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str diff --git a/thousandeyes-sdk-bgp-monitors/README.md b/thousandeyes-sdk-bgp-monitors/README.md index 5fe022d0..f48be833 100644 --- a/thousandeyes-sdk-bgp-monitors/README.md +++ b/thousandeyes-sdk-bgp-monitors/README.md @@ -10,7 +10,7 @@ For more information about monitors, see [Inside-Out BGP Visibility](https://doc This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-connectors/README.md b/thousandeyes-sdk-connectors/README.md index 36688c20..e1fd2a2b 100644 --- a/thousandeyes-sdk-connectors/README.md +++ b/thousandeyes-sdk-connectors/README.md @@ -6,7 +6,7 @@ Manage connectors and operations. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-credentials/README.md b/thousandeyes-sdk-credentials/README.md index b92eadf5..030cdd9f 100644 --- a/thousandeyes-sdk-credentials/README.md +++ b/thousandeyes-sdk-credentials/README.md @@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-dashboards/.openapi-generator/FILES b/thousandeyes-sdk-dashboards/.openapi-generator/FILES index 0643db70..1eb8c311 100644 --- a/thousandeyes-sdk-dashboards/.openapi-generator/FILES +++ b/thousandeyes-sdk-dashboards/.openapi-generator/FILES @@ -30,6 +30,7 @@ docs/ApiDuration.md docs/ApiGeoMapWidget.md docs/ApiGraphletPoint.md docs/ApiGroupedBarchartWidget.md +docs/ApiHeatmapWidget.md docs/ApiListWidget.md docs/ApiMultiMetricColumn.md docs/ApiMultiMetricColumnData.md @@ -85,6 +86,7 @@ docs/Error.md docs/GenerateDashboardSnapshotRequest.md docs/GeoMapDatasource.md docs/GroupedBarChartDatasource.md +docs/HeatmapDatasource.md docs/LegacyAgentWidgetShow.md docs/LegacyAgentWidgetType.md docs/LegacyAlertListAlertType.md @@ -155,6 +157,7 @@ src/thousandeyes_sdk/dashboards/models/api_duration.py src/thousandeyes_sdk/dashboards/models/api_geo_map_widget.py src/thousandeyes_sdk/dashboards/models/api_graphlet_point.py src/thousandeyes_sdk/dashboards/models/api_grouped_barchart_widget.py +src/thousandeyes_sdk/dashboards/models/api_heatmap_widget.py src/thousandeyes_sdk/dashboards/models/api_list_widget.py src/thousandeyes_sdk/dashboards/models/api_multi_metric_column.py src/thousandeyes_sdk/dashboards/models/api_multi_metric_column_data.py @@ -207,6 +210,7 @@ src/thousandeyes_sdk/dashboards/models/error.py src/thousandeyes_sdk/dashboards/models/generate_dashboard_snapshot_request.py src/thousandeyes_sdk/dashboards/models/geo_map_datasource.py src/thousandeyes_sdk/dashboards/models/grouped_bar_chart_datasource.py +src/thousandeyes_sdk/dashboards/models/heatmap_datasource.py src/thousandeyes_sdk/dashboards/models/legacy_agent_widget_show.py src/thousandeyes_sdk/dashboards/models/legacy_agent_widget_type.py src/thousandeyes_sdk/dashboards/models/legacy_alert_list_alert_type.py diff --git a/thousandeyes-sdk-dashboards/README.md b/thousandeyes-sdk-dashboards/README.md index 1b601f42..895a52fe 100644 --- a/thousandeyes-sdk-dashboards/README.md +++ b/thousandeyes-sdk-dashboards/README.md @@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -147,6 +147,7 @@ Class | Method | HTTP request | Description - [ApiGeoMapWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiGeoMapWidget.md) - [ApiGraphletPoint](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiGraphletPoint.md) - [ApiGroupedBarchartWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiGroupedBarchartWidget.md) + - [ApiHeatmapWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiHeatmapWidget.md) - [ApiListWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiListWidget.md) - [ApiMultiMetricColumn](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiMultiMetricColumn.md) - [ApiMultiMetricColumnData](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiMultiMetricColumnData.md) @@ -199,6 +200,7 @@ Class | Method | HTTP request | Description - [GenerateDashboardSnapshotRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/GenerateDashboardSnapshotRequest.md) - [GeoMapDatasource](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/GeoMapDatasource.md) - [GroupedBarChartDatasource](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/GroupedBarChartDatasource.md) + - [HeatmapDatasource](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/HeatmapDatasource.md) - [LegacyAgentWidgetShow](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/LegacyAgentWidgetShow.md) - [LegacyAgentWidgetType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/LegacyAgentWidgetType.md) - [LegacyAlertListAlertType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/LegacyAlertListAlertType.md) diff --git a/thousandeyes-sdk-dashboards/docs/ApiHeatmapWidget.md b/thousandeyes-sdk-dashboards/docs/ApiHeatmapWidget.md new file mode 100644 index 00000000..14bea2ab --- /dev/null +++ b/thousandeyes-sdk-dashboards/docs/ApiHeatmapWidget.md @@ -0,0 +1,50 @@ +# ApiHeatmapWidget + +Displays metric intensity across row and column groupings in a grid to help compare relative values across two dimensions. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Identifier of the widget. | [optional] [readonly] +**title** | **str** | Title of the widget | [optional] +**visual_mode** | [**VisualMode**](VisualMode.md) | | [optional] +**embed_url** | **str** | When `isEmbedded` is set to `true`, an `embedUrl` is provided. | [optional] [readonly] +**is_embedded** | **bool** | Set to `true` if widget is marked as embedded; otherwise, set to `false`. | [optional] +**metric_group** | [**MetricGroup**](MetricGroup.md) | | [optional] +**direction** | [**DashboardMetricDirection**](DashboardMetricDirection.md) | | [optional] +**metric** | [**DashboardMetric**](DashboardMetric.md) | | [optional] +**filters** | **Dict[str, List[object]]** | (Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property. | [optional] +**measure** | [**ApiWidgetMeasure**](ApiWidgetMeasure.md) | | [optional] +**fixed_timespan** | [**ApiDuration**](ApiDuration.md) | | [optional] +**api_link** | **str** | | [optional] [readonly] +**should_exclude_alert_suppression_windows** | **bool** | Excludes alert suppression window data if set to `true`. | [optional] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] +**type** | **str** | Heatmap widget type. | +**row_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**column_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**sort_by** | [**LegacyWidgetSortProperty**](LegacyWidgetSortProperty.md) | | [optional] +**sort_direction** | [**LegacyWidgetSortDirection**](LegacyWidgetSortDirection.md) | | [optional] +**limit** | **int** | Limit configured in the widget. | [optional] +**data_source** | [**HeatmapDatasource**](HeatmapDatasource.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.dashboards.models.api_heatmap_widget import ApiHeatmapWidget + +# TODO update the JSON string below +json = "{}" +# create an instance of ApiHeatmapWidget from a JSON string +api_heatmap_widget_instance = ApiHeatmapWidget.from_json(json) +# print the JSON string representation of the object +print(ApiHeatmapWidget.to_json()) + +# convert the object into a dict +api_heatmap_widget_dict = api_heatmap_widget_instance.to_dict() +# create an instance of ApiHeatmapWidget from a dict +api_heatmap_widget_from_dict = ApiHeatmapWidget.from_dict(api_heatmap_widget_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/thousandeyes-sdk-dashboards/docs/ApiWidget.md b/thousandeyes-sdk-dashboards/docs/ApiWidget.md index 8ff5f851..62534ddb 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiWidget.md +++ b/thousandeyes-sdk-dashboards/docs/ApiWidget.md @@ -42,12 +42,12 @@ Name | Type | Description | Notes **axis_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **show_labels** | **bool** | | [optional] **is_horizontal_bar_chart** | **bool** | Set to `true` to display bars horizontally in the widget. | [optional] -**compare_to_previous_value** | **bool** | | [optional] **row_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**column_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**compare_to_previous_value** | **bool** | | [optional] **multi_metric_columns** | [**List[ApiMultiMetricColumn]**](ApiMultiMetricColumn.md) | | [optional] **number_cards** | [**List[ApiNumbersCard]**](ApiNumbersCard.md) | | [optional] **show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] -**column_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **filter** | [**ApiWidgetFilterApiTestTableFilterKey**](ApiWidgetFilterApiTestTableFilterKey.md) | | [optional] **exclude** | [**ApiWidgetFilterApiTestTableFilterKey**](ApiWidgetFilterApiTestTableFilterKey.md) | | [optional] **show_timeseries_overall_baseline** | **bool** | Displays the overall baseline if set to `true`. | [optional] diff --git a/thousandeyes-sdk-dashboards/docs/HeatmapDatasource.md b/thousandeyes-sdk-dashboards/docs/HeatmapDatasource.md new file mode 100644 index 00000000..00c7abc2 --- /dev/null +++ b/thousandeyes-sdk-dashboards/docs/HeatmapDatasource.md @@ -0,0 +1,12 @@ +# HeatmapDatasource + +Data source of the heatmap widget. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py index b50cccf1..c995986b 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py @@ -49,6 +49,7 @@ from thousandeyes_sdk.dashboards.models.api_duration import ApiDuration from thousandeyes_sdk.dashboards.models.api_geo_map_widget import ApiGeoMapWidget from thousandeyes_sdk.dashboards.models.api_graphlet_point import ApiGraphletPoint from thousandeyes_sdk.dashboards.models.api_grouped_barchart_widget import ApiGroupedBarchartWidget +from thousandeyes_sdk.dashboards.models.api_heatmap_widget import ApiHeatmapWidget from thousandeyes_sdk.dashboards.models.api_list_widget import ApiListWidget from thousandeyes_sdk.dashboards.models.api_multi_metric_column import ApiMultiMetricColumn from thousandeyes_sdk.dashboards.models.api_multi_metric_column_data import ApiMultiMetricColumnData @@ -101,6 +102,7 @@ from thousandeyes_sdk.dashboards.models.error import Error from thousandeyes_sdk.dashboards.models.generate_dashboard_snapshot_request import GenerateDashboardSnapshotRequest from thousandeyes_sdk.dashboards.models.geo_map_datasource import GeoMapDatasource from thousandeyes_sdk.dashboards.models.grouped_bar_chart_datasource import GroupedBarChartDatasource +from thousandeyes_sdk.dashboards.models.heatmap_datasource import HeatmapDatasource from thousandeyes_sdk.dashboards.models.legacy_agent_widget_show import LegacyAgentWidgetShow from thousandeyes_sdk.dashboards.models.legacy_agent_widget_type import LegacyAgentWidgetType from thousandeyes_sdk.dashboards.models.legacy_alert_list_alert_type import LegacyAlertListAlertType diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py index 228efa59..a827e297 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py @@ -42,6 +42,7 @@ from thousandeyes_sdk.dashboards.models.api_duration import ApiDuration from thousandeyes_sdk.dashboards.models.api_geo_map_widget import ApiGeoMapWidget from thousandeyes_sdk.dashboards.models.api_graphlet_point import ApiGraphletPoint from thousandeyes_sdk.dashboards.models.api_grouped_barchart_widget import ApiGroupedBarchartWidget +from thousandeyes_sdk.dashboards.models.api_heatmap_widget import ApiHeatmapWidget from thousandeyes_sdk.dashboards.models.api_list_widget import ApiListWidget from thousandeyes_sdk.dashboards.models.api_multi_metric_column import ApiMultiMetricColumn from thousandeyes_sdk.dashboards.models.api_multi_metric_column_data import ApiMultiMetricColumnData @@ -94,6 +95,7 @@ from thousandeyes_sdk.dashboards.models.error import Error from thousandeyes_sdk.dashboards.models.generate_dashboard_snapshot_request import GenerateDashboardSnapshotRequest from thousandeyes_sdk.dashboards.models.geo_map_datasource import GeoMapDatasource from thousandeyes_sdk.dashboards.models.grouped_bar_chart_datasource import GroupedBarChartDatasource +from thousandeyes_sdk.dashboards.models.heatmap_datasource import HeatmapDatasource from thousandeyes_sdk.dashboards.models.legacy_agent_widget_show import LegacyAgentWidgetShow from thousandeyes_sdk.dashboards.models.legacy_agent_widget_type import LegacyAgentWidgetType from thousandeyes_sdk.dashboards.models.legacy_alert_list_alert_type import LegacyAlertListAlertType diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_heatmap_widget.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_heatmap_widget.py new file mode 100644 index 00000000..fb1ea1e1 --- /dev/null +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_heatmap_widget.py @@ -0,0 +1,161 @@ +# coding: utf-8 + +""" + Dashboards API + + Manage ThousandEyes Dashboards. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from thousandeyes_sdk.dashboards.models.api_aggregate_property import ApiAggregateProperty +from thousandeyes_sdk.dashboards.models.api_duration import ApiDuration +from thousandeyes_sdk.dashboards.models.api_widget_measure import ApiWidgetMeasure +from thousandeyes_sdk.dashboards.models.dashboard_metric import DashboardMetric +from thousandeyes_sdk.dashboards.models.dashboard_metric_direction import DashboardMetricDirection +from thousandeyes_sdk.dashboards.models.heatmap_datasource import HeatmapDatasource +from thousandeyes_sdk.dashboards.models.legacy_widget_sort_direction import LegacyWidgetSortDirection +from thousandeyes_sdk.dashboards.models.legacy_widget_sort_property import LegacyWidgetSortProperty +from thousandeyes_sdk.dashboards.models.metric_group import MetricGroup +from thousandeyes_sdk.dashboards.models.self_links import SelfLinks +from thousandeyes_sdk.dashboards.models.visual_mode import VisualMode +from typing import Optional, Set +from typing_extensions import Self + +class ApiHeatmapWidget(BaseModel): + """ + Displays metric intensity across row and column groupings in a grid to help compare relative values across two dimensions. + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="Identifier of the widget.") + title: Optional[StrictStr] = Field(default=None, description="Title of the widget") + visual_mode: Optional[VisualMode] = Field(default=None, alias="visualMode") + embed_url: Optional[StrictStr] = Field(default=None, description="When `isEmbedded` is set to `true`, an `embedUrl` is provided.", alias="embedUrl") + is_embedded: Optional[StrictBool] = Field(default=None, description="Set to `true` if widget is marked as embedded; otherwise, set to `false`.", alias="isEmbedded") + metric_group: Optional[MetricGroup] = Field(default=None, alias="metricGroup") + direction: Optional[DashboardMetricDirection] = None + metric: Optional[DashboardMetric] = None + filters: Optional[Dict[str, List[Any]]] = Field(default=None, description="(Optional) Specifies the filters applied to the widget. When present, the `filters` property displays. Each filter object has two properties: `filterProperty` and `filterValue`. The `filterProperty` can be values like `AGENT`, `ENDPOINT_MACHINE_ID`, `TEST`, `MONITOR`, etc. The `filterValue` represents an identifier array of the selected property.") + measure: Optional[ApiWidgetMeasure] = None + fixed_timespan: Optional[ApiDuration] = Field(default=None, alias="fixedTimespan") + api_link: Optional[StrictStr] = Field(default=None, alias="apiLink") + should_exclude_alert_suppression_windows: Optional[StrictBool] = Field(default=None, description="Excludes alert suppression window data if set to `true`.", alias="shouldExcludeAlertSuppressionWindows") + links: Optional[SelfLinks] = Field(default=None, alias="_links") + type: Annotated[str, Field(strict=True)] = Field(description="Heatmap widget type.") + row_group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="rowGroupBy") + column_group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="columnGroupBy") + sort_by: Optional[LegacyWidgetSortProperty] = Field(default=None, alias="sortBy") + sort_direction: Optional[LegacyWidgetSortDirection] = Field(default=None, alias="sortDirection") + limit: Optional[StrictInt] = Field(default=None, description="Limit configured in the widget.") + data_source: Optional[HeatmapDatasource] = Field(default=None, alias="dataSource") + __properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "type", "rowGroupBy", "columnGroupBy", "sortBy", "sortDirection", "limit", "dataSource"] + + @field_validator('type') + def type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^Heatmap$", value): + raise ValueError(r"must validate the regular expression /^Heatmap$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApiHeatmapWidget from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "embed_url", + "api_link", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of measure + if self.measure: + _dict['measure'] = self.measure.to_dict() + # override the default output from pydantic by calling `to_dict()` of fixed_timespan + if self.fixed_timespan: + _dict['fixedTimespan'] = self.fixed_timespan.to_dict() + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ApiHeatmapWidget from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "title": obj.get("title"), + "visualMode": obj.get("visualMode"), + "embedUrl": obj.get("embedUrl"), + "isEmbedded": obj.get("isEmbedded"), + "metricGroup": obj.get("metricGroup"), + "direction": obj.get("direction"), + "metric": obj.get("metric"), + "filters": obj.get("filters"), + "measure": ApiWidgetMeasure.from_dict(obj["measure"]) if obj.get("measure") is not None else None, + "fixedTimespan": ApiDuration.from_dict(obj["fixedTimespan"]) if obj.get("fixedTimespan") is not None else None, + "apiLink": obj.get("apiLink"), + "shouldExcludeAlertSuppressionWindows": obj.get("shouldExcludeAlertSuppressionWindows"), + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, + "type": obj.get("type"), + "rowGroupBy": obj.get("rowGroupBy"), + "columnGroupBy": obj.get("columnGroupBy"), + "sortBy": obj.get("sortBy"), + "sortDirection": obj.get("sortDirection"), + "limit": obj.get("limit"), + "dataSource": obj.get("dataSource") + }) + return _obj + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget.py index 0dd7eba4..cdfe0e9b 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget.py @@ -22,6 +22,7 @@ from thousandeyes_sdk.dashboards.models.api_box_and_whiskers_widget import ApiBo from thousandeyes_sdk.dashboards.models.api_color_grid_widget import ApiColorGridWidget from thousandeyes_sdk.dashboards.models.api_geo_map_widget import ApiGeoMapWidget from thousandeyes_sdk.dashboards.models.api_grouped_barchart_widget import ApiGroupedBarchartWidget +from thousandeyes_sdk.dashboards.models.api_heatmap_widget import ApiHeatmapWidget from thousandeyes_sdk.dashboards.models.api_list_widget import ApiListWidget from thousandeyes_sdk.dashboards.models.api_multi_metric_table_widget import ApiMultiMetricTableWidget from thousandeyes_sdk.dashboards.models.api_numbers_card_widget import ApiNumbersCardWidget @@ -35,7 +36,7 @@ from pydantic import StrictStr, Field, model_serializer from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -APIWIDGET_ONE_OF_SCHEMAS = ["ApiAgentStatusWidget", "ApiAlertListWidget", "ApiBoxAndWhiskersWidget", "ApiColorGridWidget", "ApiGeoMapWidget", "ApiGroupedBarchartWidget", "ApiListWidget", "ApiMultiMetricTableWidget", "ApiNumbersCardWidget", "ApiPieChartWidget", "ApiStackedAreaChartWidget", "ApiStackedBarchartWidget", "ApiTableWidget", "ApiTestTableWidget", "ApiTimeseriesWidget"] +APIWIDGET_ONE_OF_SCHEMAS = ["ApiAgentStatusWidget", "ApiAlertListWidget", "ApiBoxAndWhiskersWidget", "ApiColorGridWidget", "ApiGeoMapWidget", "ApiGroupedBarchartWidget", "ApiHeatmapWidget", "ApiListWidget", "ApiMultiMetricTableWidget", "ApiNumbersCardWidget", "ApiPieChartWidget", "ApiStackedAreaChartWidget", "ApiStackedBarchartWidget", "ApiTableWidget", "ApiTestTableWidget", "ApiTimeseriesWidget"] class ApiWidget(BaseModel): """ @@ -53,26 +54,28 @@ class ApiWidget(BaseModel): oneof_schema_5_validator: Optional[ApiGeoMapWidget] = None # data type: ApiGroupedBarchartWidget oneof_schema_6_validator: Optional[ApiGroupedBarchartWidget] = None + # data type: ApiHeatmapWidget + oneof_schema_7_validator: Optional[ApiHeatmapWidget] = None # data type: ApiListWidget - oneof_schema_7_validator: Optional[ApiListWidget] = None + oneof_schema_8_validator: Optional[ApiListWidget] = None # data type: ApiMultiMetricTableWidget - oneof_schema_8_validator: Optional[ApiMultiMetricTableWidget] = None + oneof_schema_9_validator: Optional[ApiMultiMetricTableWidget] = None # data type: ApiNumbersCardWidget - oneof_schema_9_validator: Optional[ApiNumbersCardWidget] = None + oneof_schema_10_validator: Optional[ApiNumbersCardWidget] = None # data type: ApiPieChartWidget - oneof_schema_10_validator: Optional[ApiPieChartWidget] = None + oneof_schema_11_validator: Optional[ApiPieChartWidget] = None # data type: ApiStackedAreaChartWidget - oneof_schema_11_validator: Optional[ApiStackedAreaChartWidget] = None + oneof_schema_12_validator: Optional[ApiStackedAreaChartWidget] = None # data type: ApiStackedBarchartWidget - oneof_schema_12_validator: Optional[ApiStackedBarchartWidget] = None + oneof_schema_13_validator: Optional[ApiStackedBarchartWidget] = None # data type: ApiTableWidget - oneof_schema_13_validator: Optional[ApiTableWidget] = None + oneof_schema_14_validator: Optional[ApiTableWidget] = None # data type: ApiTestTableWidget - oneof_schema_14_validator: Optional[ApiTestTableWidget] = None + oneof_schema_15_validator: Optional[ApiTestTableWidget] = None # data type: ApiTimeseriesWidget - oneof_schema_15_validator: Optional[ApiTimeseriesWidget] = None - actual_instance: Optional[Union[ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget]] = None - one_of_schemas: Set[str] = { "ApiAgentStatusWidget", "ApiAlertListWidget", "ApiBoxAndWhiskersWidget", "ApiColorGridWidget", "ApiGeoMapWidget", "ApiGroupedBarchartWidget", "ApiListWidget", "ApiMultiMetricTableWidget", "ApiNumbersCardWidget", "ApiPieChartWidget", "ApiStackedAreaChartWidget", "ApiStackedBarchartWidget", "ApiTableWidget", "ApiTestTableWidget", "ApiTimeseriesWidget" } + oneof_schema_16_validator: Optional[ApiTimeseriesWidget] = None + actual_instance: Optional[Union[ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget]] = None + one_of_schemas: Set[str] = { "ApiAgentStatusWidget", "ApiAlertListWidget", "ApiBoxAndWhiskersWidget", "ApiColorGridWidget", "ApiGeoMapWidget", "ApiGroupedBarchartWidget", "ApiHeatmapWidget", "ApiListWidget", "ApiMultiMetricTableWidget", "ApiNumbersCardWidget", "ApiPieChartWidget", "ApiStackedAreaChartWidget", "ApiStackedBarchartWidget", "ApiTableWidget", "ApiTestTableWidget", "ApiTimeseriesWidget" } model_config = ConfigDict( validate_assignment=True, @@ -128,6 +131,11 @@ class ApiWidget(BaseModel): error_messages.append(f"Error! Input type `{type(v)}` is not `ApiGroupedBarchartWidget`") else: match += 1 + # validate data type: ApiHeatmapWidget + if not isinstance(v, ApiHeatmapWidget): + error_messages.append(f"Error! Input type `{type(v)}` is not `ApiHeatmapWidget`") + else: + match += 1 # validate data type: ApiListWidget if not isinstance(v, ApiListWidget): error_messages.append(f"Error! Input type `{type(v)}` is not `ApiListWidget`") @@ -175,10 +183,10 @@ class ApiWidget(BaseModel): match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) else: return v @@ -229,6 +237,12 @@ class ApiWidget(BaseModel): match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into ApiHeatmapWidget + try: + instance.actual_instance = ApiHeatmapWidget.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) # deserialize data into ApiListWidget try: instance.actual_instance = ApiListWidget.from_json(json_str) @@ -286,10 +300,10 @@ class ApiWidget(BaseModel): if match > 1: # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into ApiWidget with oneOf schemas: ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget. Details: " + ", ".join(error_messages)) else: return instance @@ -307,7 +321,7 @@ class ApiWidget(BaseModel): else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], ApiAgentStatusWidget, ApiAlertListWidget, ApiBoxAndWhiskersWidget, ApiColorGridWidget, ApiGeoMapWidget, ApiGroupedBarchartWidget, ApiHeatmapWidget, ApiListWidget, ApiMultiMetricTableWidget, ApiNumbersCardWidget, ApiPieChartWidget, ApiStackedAreaChartWidget, ApiStackedBarchartWidget, ApiTableWidget, ApiTestTableWidget, ApiTimeseriesWidget]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/heatmap_datasource.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/heatmap_datasource.py new file mode 100644 index 00000000..97fb4620 --- /dev/null +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/heatmap_datasource.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + Dashboards API + + Manage ThousandEyes Dashboards. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class HeatmapDatasource(str, Enum): + """ + Data source of the heatmap widget. + """ + + """ + allowed enum values + """ + ALERTS = 'ALERTS' + CLOUD_AND_ENTERPRISE_AGENTS = 'CLOUD_AND_ENTERPRISE_AGENTS' + DEVICES = 'DEVICES' + ENDPOINT_AGENTS = 'ENDPOINT_AGENTS' + ENDPOINT_AST_TEST = 'ENDPOINT_AST_TEST' + ENDPOINT_BROWSER_SESSION = 'ENDPOINT_BROWSER_SESSION' + ENDPOINT_LOCAL_NETWORK = 'ENDPOINT_LOCAL_NETWORK' + ENDPOINT_LOCAL_NETWORK_WIRELESS = 'ENDPOINT_LOCAL_NETWORK_WIRELESS' + ENDPOINT_SCHEDULED_TEST = 'ENDPOINT_SCHEDULED_TEST' + INTERNET_INSIGHTS = 'INTERNET_INSIGHTS' + ROUTING = 'ROUTING' + CLOUD_NATIVE_MONITORING = 'CLOUD_NATIVE_MONITORING' + TRAFFIC_INSIGHTS_MONITORING = 'TRAFFIC_INSIGHTS_MONITORING' + UNKNOWN = 'unknown' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of HeatmapDatasource from a JSON string""" + return cls(json.loads(json_str)) + + @classmethod + def _missing_(cls, value): + """Handle unknown values""" + return cls.UNKNOWN + diff --git a/thousandeyes-sdk-emulation/README.md b/thousandeyes-sdk-emulation/README.md index 9fc22dec..e83ed5df 100644 --- a/thousandeyes-sdk-emulation/README.md +++ b/thousandeyes-sdk-emulation/README.md @@ -11,7 +11,7 @@ To access Emulation API operations, the following permissions are required: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-agents/README.md b/thousandeyes-sdk-endpoint-agents/README.md index d5675fe9..a0bd8d17 100644 --- a/thousandeyes-sdk-endpoint-agents/README.md +++ b/thousandeyes-sdk-endpoint-agents/README.md @@ -7,7 +7,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-instant-tests/README.md b/thousandeyes-sdk-endpoint-instant-tests/README.md index f876c623..3c356643 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/README.md +++ b/thousandeyes-sdk-endpoint-instant-tests/README.md @@ -12,7 +12,7 @@ The URLs for these API test data endpoints are provided within the test definiti This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-labels/README.md b/thousandeyes-sdk-endpoint-labels/README.md index 5cff787f..1e528b67 100644 --- a/thousandeyes-sdk-endpoint-labels/README.md +++ b/thousandeyes-sdk-endpoint-labels/README.md @@ -4,7 +4,7 @@ Manage labels applied to endpoint agents using this API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-test-results/README.md b/thousandeyes-sdk-endpoint-test-results/README.md index 88f18f45..1444d733 100644 --- a/thousandeyes-sdk-endpoint-test-results/README.md +++ b/thousandeyes-sdk-endpoint-test-results/README.md @@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-tests/README.md b/thousandeyes-sdk-endpoint-tests/README.md index fda16437..c263c00e 100644 --- a/thousandeyes-sdk-endpoint-tests/README.md +++ b/thousandeyes-sdk-endpoint-tests/README.md @@ -4,7 +4,7 @@ Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-event-detection/README.md b/thousandeyes-sdk-event-detection/README.md index c51348c6..1b087172 100644 --- a/thousandeyes-sdk-event-detection/README.md +++ b/thousandeyes-sdk-event-detection/README.md @@ -11,7 +11,7 @@ With the Events API, you can perform the following tasks on the ThousandEyes pla This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-instant-tests/README.md b/thousandeyes-sdk-instant-tests/README.md index ed6e0658..c1e18e2f 100644 --- a/thousandeyes-sdk-instant-tests/README.md +++ b/thousandeyes-sdk-instant-tests/README.md @@ -6,7 +6,7 @@ The response does not include the immediate test results. Use the Test Results e This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-internet-insights/README.md b/thousandeyes-sdk-internet-insights/README.md index 972ef1ac..c4dea7b0 100644 --- a/thousandeyes-sdk-internet-insights/README.md +++ b/thousandeyes-sdk-internet-insights/README.md @@ -16,7 +16,7 @@ For more information about Internet Insights, see the [Internet Insights](https: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-snapshots/README.md b/thousandeyes-sdk-snapshots/README.md index bc2d76cd..db03cc44 100644 --- a/thousandeyes-sdk-snapshots/README.md +++ b/thousandeyes-sdk-snapshots/README.md @@ -3,7 +3,7 @@ Creates a new test snapshot in ThousandEyes. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-streaming/README.md b/thousandeyes-sdk-streaming/README.md index 28b46462..70934167 100644 --- a/thousandeyes-sdk-streaming/README.md +++ b/thousandeyes-sdk-streaming/README.md @@ -17,7 +17,7 @@ For more information about ThousandEyes for OpenTelemetry, see the [product docu This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-tags/README.md b/thousandeyes-sdk-tags/README.md index 53a5c753..e3951fd4 100644 --- a/thousandeyes-sdk-tags/README.md +++ b/thousandeyes-sdk-tags/README.md @@ -16,7 +16,7 @@ Things to note with the ThousandEyes Tags API: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-test-results/README.md b/thousandeyes-sdk-test-results/README.md index 60b4d43e..08eb134a 100644 --- a/thousandeyes-sdk-test-results/README.md +++ b/thousandeyes-sdk-test-results/README.md @@ -3,7 +3,7 @@ Get test result metrics for Network and Application Synthetics tests. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-tests/README.md b/thousandeyes-sdk-tests/README.md index ab689544..32f5d78e 100644 --- a/thousandeyes-sdk-tests/README.md +++ b/thousandeyes-sdk-tests/README.md @@ -6,7 +6,7 @@ This API allows you to list, create, edit, and delete Network and Application Sy This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-usage/README.md b/thousandeyes-sdk-usage/README.md index b9ccc1c0..8ce0302f 100644 --- a/thousandeyes-sdk-usage/README.md +++ b/thousandeyes-sdk-usage/README.md @@ -17,7 +17,7 @@ Refer to the Usage API operations for detailed usage instructions and optional p This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.92 +- API version: 7.0.93 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator