diff --git a/thousandeyes-sdk-administrative/README.md b/thousandeyes-sdk-administrative/README.md index dd8422a8..72c5712c 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.20 +- API version: 7.0.21 - 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 314f984e..5f427c19 100644 --- a/thousandeyes-sdk-agents/README.md +++ b/thousandeyes-sdk-agents/README.md @@ -5,7 +5,7 @@ Manage all agents available to your account in ThousandEyes, including both Clou This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.20 +- API version: 7.0.21 - 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 03c436a1..c4bc23a5 100644 --- a/thousandeyes-sdk-alerts/README.md +++ b/thousandeyes-sdk-alerts/README.md @@ -12,7 +12,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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-bgp-monitors/README.md b/thousandeyes-sdk-bgp-monitors/README.md index 674d9285..ed82ae66 100644 --- a/thousandeyes-sdk-bgp-monitors/README.md +++ b/thousandeyes-sdk-bgp-monitors/README.md @@ -9,7 +9,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.20 +- API version: 7.0.21 - 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 835cf7e6..64d6b3cf 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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-dashboards/README.md b/thousandeyes-sdk-dashboards/README.md index bb28a7d3..231b2a4d 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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-emulation/README.md b/thousandeyes-sdk-emulation/README.md index 4feefa92..b077ab09 100644 --- a/thousandeyes-sdk-emulation/README.md +++ b/thousandeyes-sdk-emulation/README.md @@ -9,7 +9,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.20 +- API version: 7.0.21 - 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 8d949479..f1078179 100644 --- a/thousandeyes-sdk-endpoint-agents/README.md +++ b/thousandeyes-sdk-endpoint-agents/README.md @@ -5,7 +5,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.20 +- API version: 7.0.21 - 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 69512046..a12036e7 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/README.md +++ b/thousandeyes-sdk-endpoint-instant-tests/README.md @@ -13,7 +13,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.20 +- API version: 7.0.21 - 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 f28e63f9..3bda8cc4 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.20 +- API version: 7.0.21 - 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 6ddcf6b5..a8eda2cc 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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py index 0c170d6f..86251992 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py @@ -380,11 +380,11 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "log" : { "browser" : { "name" : "Google Chrome", - "version" : "7.0.20.98" + "version" : "7.0.21.98" }, "creator" : { "name" : "ThousandEyes Endpoint Agent", - "version" : "7.0.20" + "version" : "7.0.21" }, "entries" : [ { "pageref" : "page_1", diff --git a/thousandeyes-sdk-endpoint-tests/README.md b/thousandeyes-sdk-endpoint-tests/README.md index 29a0871b..994d4f24 100644 --- a/thousandeyes-sdk-endpoint-tests/README.md +++ b/thousandeyes-sdk-endpoint-tests/README.md @@ -5,7 +5,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.20 +- API version: 7.0.21 - 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 2d6709ce..6d7883d7 100644 --- a/thousandeyes-sdk-event-detection/README.md +++ b/thousandeyes-sdk-event-detection/README.md @@ -12,7 +12,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.20 +- API version: 7.0.21 - 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 e00eb7a0..c993c953 100644 --- a/thousandeyes-sdk-instant-tests/README.md +++ b/thousandeyes-sdk-instant-tests/README.md @@ -8,7 +8,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.20 +- API version: 7.0.21 - 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 3db0eee3..197d23b0 100644 --- a/thousandeyes-sdk-internet-insights/README.md +++ b/thousandeyes-sdk-internet-insights/README.md @@ -14,7 +14,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.20 +- API version: 7.0.21 - 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 09887aff..0ef8e6d3 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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-streaming/.openapi-generator/FILES b/thousandeyes-sdk-streaming/.openapi-generator/FILES index d2e4ae8f..eb643223 100644 --- a/thousandeyes-sdk-streaming/.openapi-generator/FILES +++ b/thousandeyes-sdk-streaming/.openapi-generator/FILES @@ -11,6 +11,8 @@ docs/DataModelVersion.md docs/EndpointType.md docs/ExporterConfig.md docs/ExporterConfigSplunkHec.md +docs/Filters.md +docs/FiltersTestTypes.md docs/GetStreamResponse.md docs/PutStream.md docs/Stream.md @@ -23,6 +25,7 @@ docs/TagMatch.md docs/TagMatchObjectType.md docs/TestMatch.md docs/TestMatchDomain.md +docs/TestType.md docs/UnauthorizedError.md pyproject.toml setup.cfg @@ -40,6 +43,8 @@ src/thousandeyes_sdk/streaming/models/data_model_version.py src/thousandeyes_sdk/streaming/models/endpoint_type.py src/thousandeyes_sdk/streaming/models/exporter_config.py src/thousandeyes_sdk/streaming/models/exporter_config_splunk_hec.py +src/thousandeyes_sdk/streaming/models/filters.py +src/thousandeyes_sdk/streaming/models/filters_test_types.py src/thousandeyes_sdk/streaming/models/get_stream_response.py src/thousandeyes_sdk/streaming/models/put_stream.py src/thousandeyes_sdk/streaming/models/stream.py @@ -51,6 +56,7 @@ src/thousandeyes_sdk/streaming/models/tag_match.py src/thousandeyes_sdk/streaming/models/tag_match_object_type.py src/thousandeyes_sdk/streaming/models/test_match.py src/thousandeyes_sdk/streaming/models/test_match_domain.py +src/thousandeyes_sdk/streaming/models/test_type.py src/thousandeyes_sdk/streaming/models/unauthorized_error.py src/thousandeyes_sdk/streaming/py.typed test/__init__.py diff --git a/thousandeyes-sdk-streaming/README.md b/thousandeyes-sdk-streaming/README.md index 3f9823fe..c6098527 100644 --- a/thousandeyes-sdk-streaming/README.md +++ b/thousandeyes-sdk-streaming/README.md @@ -15,7 +15,7 @@ For more information about ThousandEyes for OpenTelemetry, see the [documentatio This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -126,6 +126,8 @@ Class | Method | HTTP request | Description - [EndpointType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/EndpointType.md) - [ExporterConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfig.md) - [ExporterConfigSplunkHec](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfigSplunkHec.md) + - [Filters](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/Filters.md) + - [FiltersTestTypes](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/FiltersTestTypes.md) - [GetStreamResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/GetStreamResponse.md) - [PutStream](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/PutStream.md) - [Stream](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/Stream.md) @@ -137,6 +139,7 @@ Class | Method | HTTP request | Description - [TagMatchObjectType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md) - [TestMatch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatch.md) - [TestMatchDomain](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatchDomain.md) + - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestType.md) - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/UnauthorizedError.md) diff --git a/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md b/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md index 4bb37aa1..0e3a8d3f 100644 --- a/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md +++ b/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **custom_headers** | **Dict[str, str]** | Custom headers. **Note**: When using the `splunk-hec` `type`, the `customHeaders` must contain just one element with the key `token` and the value of the *Splunk HEC Token*. | [optional] **tag_match** | [**List[TagMatch]**](TagMatch.md) | A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics. | [optional] **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] +**filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] **audit_operation** | [**AuditOperation**](AuditOperation.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/Filters.md b/thousandeyes-sdk-streaming/docs/Filters.md new file mode 100644 index 00000000..259267f0 --- /dev/null +++ b/thousandeyes-sdk-streaming/docs/Filters.md @@ -0,0 +1,30 @@ +# Filters + +Provides the ability to filter data points based on the specified test types. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**test_types** | [**FiltersTestTypes**](FiltersTestTypes.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.streaming.models.filters import Filters + +# TODO update the JSON string below +json = "{}" +# create an instance of Filters from a JSON string +filters_instance = Filters.from_json(json) +# print the JSON string representation of the object +print(Filters.to_json()) + +# convert the object into a dict +filters_dict = filters_instance.to_dict() +# create an instance of Filters from a dict +filters_from_dict = Filters.from_dict(filters_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-streaming/docs/FiltersTestTypes.md b/thousandeyes-sdk-streaming/docs/FiltersTestTypes.md new file mode 100644 index 00000000..40320195 --- /dev/null +++ b/thousandeyes-sdk-streaming/docs/FiltersTestTypes.md @@ -0,0 +1,30 @@ +# FiltersTestTypes + +Test types that can be used for filtering data points. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**values** | [**List[TestType]**](TestType.md) | A list of test types to filter data points. | [optional] + +## Example + +```python +from thousandeyes_sdk.streaming.models.filters_test_types import FiltersTestTypes + +# TODO update the JSON string below +json = "{}" +# create an instance of FiltersTestTypes from a JSON string +filters_test_types_instance = FiltersTestTypes.from_json(json) +# print the JSON string representation of the object +print(FiltersTestTypes.to_json()) + +# convert the object into a dict +filters_test_types_dict = filters_test_types_instance.to_dict() +# create an instance of FiltersTestTypes from a dict +filters_test_types_from_dict = FiltersTestTypes.from_dict(filters_test_types_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-streaming/docs/GetStreamResponse.md b/thousandeyes-sdk-streaming/docs/GetStreamResponse.md index 1570902b..0da2ce35 100644 --- a/thousandeyes-sdk-streaming/docs/GetStreamResponse.md +++ b/thousandeyes-sdk-streaming/docs/GetStreamResponse.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **custom_headers** | **Dict[str, str]** | Custom headers. **Note**: When using the `splunk-hec` `type`, the `customHeaders` must contain just one element with the key `token` and the value of the *Splunk HEC Token*. | [optional] **tag_match** | [**List[TagMatch]**](TagMatch.md) | A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics. | [optional] **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] +**filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] **audit_operation** | [**AuditOperationWithUpdate**](AuditOperationWithUpdate.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/PutStream.md b/thousandeyes-sdk-streaming/docs/PutStream.md index ef892312..871eb454 100644 --- a/thousandeyes-sdk-streaming/docs/PutStream.md +++ b/thousandeyes-sdk-streaming/docs/PutStream.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **tag_match** | [**List[TagMatch]**](TagMatch.md) | A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics. | [optional] **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] **enabled** | **bool** | Flag to enable or disable the stream integration. | [optional] +**filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-streaming/docs/Stream.md b/thousandeyes-sdk-streaming/docs/Stream.md index 3e100f2c..8340284e 100644 --- a/thousandeyes-sdk-streaming/docs/Stream.md +++ b/thousandeyes-sdk-streaming/docs/Stream.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **tag_match** | [**List[TagMatch]**](TagMatch.md) | A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics. | [optional] **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] **enabled** | **bool** | Flag to enable or disable the stream integration. | [optional] +**filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] **type** | [**StreamType**](StreamType.md) | | [optional] **endpoint_type** | [**EndpointType**](EndpointType.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/TagMatch.md b/thousandeyes-sdk-streaming/docs/TagMatch.md index f1902d84..e686d0d2 100644 --- a/thousandeyes-sdk-streaming/docs/TagMatch.md +++ b/thousandeyes-sdk-streaming/docs/TagMatch.md @@ -5,7 +5,6 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**object_type** | [**TagMatchObjectType**](TagMatchObjectType.md) | | [optional] **key** | **str** | The name of the tag key to match | [optional] **value** | **str** | The value of the tag to match | [optional] diff --git a/thousandeyes-sdk-streaming/docs/TestType.md b/thousandeyes-sdk-streaming/docs/TestType.md new file mode 100644 index 00000000..8093a739 --- /dev/null +++ b/thousandeyes-sdk-streaming/docs/TestType.md @@ -0,0 +1,12 @@ +# TestType + +This is a read only value, as test type is implicit in the test creation url. + +## 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-streaming/src/thousandeyes_sdk/streaming/__init__.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py index b54dc1b7..b9ab7cb8 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py @@ -28,6 +28,8 @@ from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersio from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.exporter_config_splunk_hec import ExporterConfigSplunkHec +from thousandeyes_sdk.streaming.models.filters import Filters +from thousandeyes_sdk.streaming.models.filters_test_types import FiltersTestTypes from thousandeyes_sdk.streaming.models.get_stream_response import GetStreamResponse from thousandeyes_sdk.streaming.models.put_stream import PutStream from thousandeyes_sdk.streaming.models.stream import Stream @@ -39,4 +41,5 @@ from thousandeyes_sdk.streaming.models.tag_match import TagMatch from thousandeyes_sdk.streaming.models.tag_match_object_type import TagMatchObjectType from thousandeyes_sdk.streaming.models.test_match import TestMatch from thousandeyes_sdk.streaming.models.test_match_domain import TestMatchDomain +from thousandeyes_sdk.streaming.models.test_type import TestType from thousandeyes_sdk.streaming.models.unauthorized_error import UnauthorizedError diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py index 888a5f23..594bbedf 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py @@ -23,6 +23,8 @@ from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersio from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.exporter_config_splunk_hec import ExporterConfigSplunkHec +from thousandeyes_sdk.streaming.models.filters import Filters +from thousandeyes_sdk.streaming.models.filters_test_types import FiltersTestTypes from thousandeyes_sdk.streaming.models.get_stream_response import GetStreamResponse from thousandeyes_sdk.streaming.models.put_stream import PutStream from thousandeyes_sdk.streaming.models.stream import Stream @@ -34,4 +36,5 @@ from thousandeyes_sdk.streaming.models.tag_match import TagMatch from thousandeyes_sdk.streaming.models.tag_match_object_type import TagMatchObjectType from thousandeyes_sdk.streaming.models.test_match import TestMatch from thousandeyes_sdk.streaming.models.test_match_domain import TestMatchDomain +from thousandeyes_sdk.streaming.models.test_type import TestType from thousandeyes_sdk.streaming.models.unauthorized_error import UnauthorizedError diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py index 6c34311e..46c7a9cf 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py @@ -22,6 +22,7 @@ from thousandeyes_sdk.streaming.models.audit_operation import AuditOperation from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig +from thousandeyes_sdk.streaming.models.filters import Filters from thousandeyes_sdk.streaming.models.stream_links import StreamLinks from thousandeyes_sdk.streaming.models.stream_type import StreamType from thousandeyes_sdk.streaming.models.tag_match import TagMatch @@ -43,9 +44,10 @@ class CreateStreamResponse(BaseModel): custom_headers: Optional[Dict[str, StrictStr]] = Field(default=None, description="Custom headers. **Note**: When using the `splunk-hec` `type`, the `customHeaders` must contain just one element with the key `token` and the value of the *Splunk HEC Token*.", alias="customHeaders") tag_match: Optional[List[TagMatch]] = Field(default=None, description="A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics.", alias="tagMatch") test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") + filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") audit_operation: Optional[AuditOperation] = Field(default=None, alias="auditOperation") - __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "exporterConfig", "auditOperation"] + __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "auditOperation"] model_config = ConfigDict( populate_by_name=True, @@ -106,6 +108,9 @@ class CreateStreamResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['testMatch'] = _items + # override the default output from pydantic by calling `to_dict()` of filters + if self.filters: + _dict['filters'] = self.filters.to_dict() # override the default output from pydantic by calling `to_dict()` of exporter_config if self.exporter_config: _dict['exporterConfig'] = self.exporter_config.to_dict() @@ -134,6 +139,7 @@ class CreateStreamResponse(BaseModel): "customHeaders": obj.get("customHeaders"), "tagMatch": [TagMatch.from_dict(_item) for _item in obj["tagMatch"]] if obj.get("tagMatch") is not None else None, "testMatch": [TestMatch.from_dict(_item) for _item in obj["testMatch"]] if obj.get("testMatch") is not None else None, + "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "auditOperation": AuditOperation.from_dict(obj["auditOperation"]) if obj.get("auditOperation") is not None else None }) diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters.py new file mode 100644 index 00000000..b54b8967 --- /dev/null +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + ThousandEyes for OpenTelemetry API + + ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry. ThousandEyes for OTel is made up of the following components: * Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations. * A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs. * Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration. For more information about ThousandEyes for OpenTelemetry, see the [documentation](https://docs.thousandeyes.com/product-documentation/api/opentelemetry). + + 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 +from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.streaming.models.filters_test_types import FiltersTestTypes +from typing import Optional, Set +from typing_extensions import Self + +class Filters(BaseModel): + """ + Provides the ability to filter data points based on the specified test types. + """ # noqa: E501 + test_types: Optional[FiltersTestTypes] = Field(default=None, alias="testTypes") + __properties: ClassVar[List[str]] = ["testTypes"] + + 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 Filters 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. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of test_types + if self.test_types: + _dict['testTypes'] = self.test_types.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Filters from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "testTypes": FiltersTestTypes.from_dict(obj["testTypes"]) if obj.get("testTypes") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters_test_types.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters_test_types.py new file mode 100644 index 00000000..b53c0e9a --- /dev/null +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/filters_test_types.py @@ -0,0 +1,88 @@ +# coding: utf-8 + +""" + ThousandEyes for OpenTelemetry API + + ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry. ThousandEyes for OTel is made up of the following components: * Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations. * A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs. * Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration. For more information about ThousandEyes for OpenTelemetry, see the [documentation](https://docs.thousandeyes.com/product-documentation/api/opentelemetry). + + 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 +from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.streaming.models.test_type import TestType +from typing import Optional, Set +from typing_extensions import Self + +class FiltersTestTypes(BaseModel): + """ + Test types that can be used for filtering data points. + """ # noqa: E501 + values: Optional[List[TestType]] = Field(default=None, description="A list of test types to filter data points.") + __properties: ClassVar[List[str]] = ["values"] + + 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 FiltersTestTypes 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. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of FiltersTestTypes from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "values": obj.get("values") + }) + return _obj + + diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py index 7a604f29..f0b3eeb0 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py @@ -22,6 +22,7 @@ from thousandeyes_sdk.streaming.models.audit_operation_with_update import AuditO from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig +from thousandeyes_sdk.streaming.models.filters import Filters from thousandeyes_sdk.streaming.models.stream_links import StreamLinks from thousandeyes_sdk.streaming.models.stream_type import StreamType from thousandeyes_sdk.streaming.models.tag_match import TagMatch @@ -43,9 +44,10 @@ class GetStreamResponse(BaseModel): custom_headers: Optional[Dict[str, StrictStr]] = Field(default=None, description="Custom headers. **Note**: When using the `splunk-hec` `type`, the `customHeaders` must contain just one element with the key `token` and the value of the *Splunk HEC Token*.", alias="customHeaders") tag_match: Optional[List[TagMatch]] = Field(default=None, description="A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics.", alias="tagMatch") test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") + filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") audit_operation: Optional[AuditOperationWithUpdate] = Field(default=None, alias="auditOperation") - __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "exporterConfig", "auditOperation"] + __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "auditOperation"] model_config = ConfigDict( populate_by_name=True, @@ -106,6 +108,9 @@ class GetStreamResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['testMatch'] = _items + # override the default output from pydantic by calling `to_dict()` of filters + if self.filters: + _dict['filters'] = self.filters.to_dict() # override the default output from pydantic by calling `to_dict()` of exporter_config if self.exporter_config: _dict['exporterConfig'] = self.exporter_config.to_dict() @@ -134,6 +139,7 @@ class GetStreamResponse(BaseModel): "customHeaders": obj.get("customHeaders"), "tagMatch": [TagMatch.from_dict(_item) for _item in obj["tagMatch"]] if obj.get("tagMatch") is not None else None, "testMatch": [TestMatch.from_dict(_item) for _item in obj["testMatch"]] if obj.get("testMatch") is not None else None, + "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "auditOperation": AuditOperationWithUpdate.from_dict(obj["auditOperation"]) if obj.get("auditOperation") is not None else None }) diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py index 57c23648..05caaa31 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig +from thousandeyes_sdk.streaming.models.filters import Filters from thousandeyes_sdk.streaming.models.tag_match import TagMatch from thousandeyes_sdk.streaming.models.test_match import TestMatch from typing import Optional, Set @@ -32,8 +33,9 @@ class PutStream(BaseModel): tag_match: Optional[List[TagMatch]] = Field(default=None, description="A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics.", alias="tagMatch") test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") enabled: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable the stream integration.") + filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") - __properties: ClassVar[List[str]] = ["customHeaders", "tagMatch", "testMatch", "enabled", "exporterConfig"] + __properties: ClassVar[List[str]] = ["customHeaders", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +91,9 @@ class PutStream(BaseModel): if _item: _items.append(_item.to_dict()) _dict['testMatch'] = _items + # override the default output from pydantic by calling `to_dict()` of filters + if self.filters: + _dict['filters'] = self.filters.to_dict() # override the default output from pydantic by calling `to_dict()` of exporter_config if self.exporter_config: _dict['exporterConfig'] = self.exporter_config.to_dict() @@ -108,6 +113,7 @@ class PutStream(BaseModel): "tagMatch": [TagMatch.from_dict(_item) for _item in obj["tagMatch"]] if obj.get("tagMatch") is not None else None, "testMatch": [TestMatch.from_dict(_item) for _item in obj["testMatch"]] if obj.get("testMatch") is not None else None, "enabled": obj.get("enabled"), + "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None }) return _obj diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py index 41f8b845..79e344e4 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig +from thousandeyes_sdk.streaming.models.filters import Filters from thousandeyes_sdk.streaming.models.stream_type import StreamType from thousandeyes_sdk.streaming.models.tag_match import TagMatch from thousandeyes_sdk.streaming.models.test_match import TestMatch @@ -35,12 +36,13 @@ class Stream(BaseModel): tag_match: Optional[List[TagMatch]] = Field(default=None, description="A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics.", alias="tagMatch") test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") enabled: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable the stream integration.") + filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") type: Optional[StreamType] = None endpoint_type: Optional[EndpointType] = Field(default=None, alias="endpointType") stream_endpoint_url: Optional[StrictStr] = Field(default=None, description="The URL ThousandEyes sends data stream to. For a URL to be valid, it needs to: - Be syntactically correct. - Be reachable. - Use the HTTPS protocol. - When using the `grpc` endpointType, streamEndpointUrl cannot contain paths: - Valid . `grpc` - `https://example.com` - Invalid . `grpc` - `https://example.com/collector`. - Valid . `http` - `https://example.com/collector`. - When using the `http` endpointType, the operation must match the exact final full URL (including the path if there is one) to which the metrics will be sent. Examples below: - `https://api.honeycomb.io:443/v1/metrics` - `https://ingest.eu0.signalfx.com/v2/datapoint/otlp`", alias="streamEndpointUrl") data_model_version: Optional[DataModelVersion] = Field(default=None, alias="dataModelVersion") - __properties: ClassVar[List[str]] = ["customHeaders", "tagMatch", "testMatch", "enabled", "exporterConfig", "type", "endpointType", "streamEndpointUrl", "dataModelVersion"] + __properties: ClassVar[List[str]] = ["customHeaders", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig", "type", "endpointType", "streamEndpointUrl", "dataModelVersion"] model_config = ConfigDict( populate_by_name=True, @@ -96,6 +98,9 @@ class Stream(BaseModel): if _item: _items.append(_item.to_dict()) _dict['testMatch'] = _items + # override the default output from pydantic by calling `to_dict()` of filters + if self.filters: + _dict['filters'] = self.filters.to_dict() # override the default output from pydantic by calling `to_dict()` of exporter_config if self.exporter_config: _dict['exporterConfig'] = self.exporter_config.to_dict() @@ -115,6 +120,7 @@ class Stream(BaseModel): "tagMatch": [TagMatch.from_dict(_item) for _item in obj["tagMatch"]] if obj.get("tagMatch") is not None else None, "testMatch": [TestMatch.from_dict(_item) for _item in obj["testMatch"]] if obj.get("testMatch") is not None else None, "enabled": obj.get("enabled"), + "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "type": obj.get("type"), "endpointType": obj.get("endpointType"), diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match.py index 82d3792b..7047a8b7 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match.py @@ -18,7 +18,6 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional -from thousandeyes_sdk.streaming.models.tag_match_object_type import TagMatchObjectType from typing import Optional, Set from typing_extensions import Self @@ -26,10 +25,9 @@ class TagMatch(BaseModel): """ TagMatch """ # noqa: E501 - object_type: Optional[TagMatchObjectType] = Field(default=None, alias="objectType") key: Optional[StrictStr] = Field(default=None, description="The name of the tag key to match") value: Optional[StrictStr] = Field(default=None, description="The value of the tag to match") - __properties: ClassVar[List[str]] = ["objectType", "key", "value"] + __properties: ClassVar[List[str]] = ["key", "value"] model_config = ConfigDict( populate_by_name=True, @@ -83,7 +81,6 @@ class TagMatch(BaseModel): return cls.model_validate(obj) _obj = cls.model_validate({ - "objectType": obj.get("objectType"), "key": obj.get("key"), "value": obj.get("value") }) diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/test_type.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/test_type.py new file mode 100644 index 00000000..03d0a6b0 --- /dev/null +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/test_type.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + ThousandEyes for OpenTelemetry API + + ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry. ThousandEyes for OTel is made up of the following components: * Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations. * A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs. * Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration. For more information about ThousandEyes for OpenTelemetry, see the [documentation](https://docs.thousandeyes.com/product-documentation/api/opentelemetry). + + 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 TestType(str, Enum): + """ + This is a read only value, as test type is implicit in the test creation url. + """ + + """ + allowed enum values + """ + API = 'api' + AGENT_MINUS_TO_MINUS_AGENT = 'agent-to-agent' + AGENT_MINUS_TO_MINUS_SERVER = 'agent-to-server' + BGP = 'bgp' + HTTP_MINUS_SERVER = 'http-server' + PAGE_MINUS_LOAD = 'page-load' + WEB_MINUS_TRANSACTIONS = 'web-transactions' + FTP_MINUS_SERVER = 'ftp-server' + DNS_MINUS_TRACE = 'dns-trace' + DNS_MINUS_SERVER = 'dns-server' + DNSSEC = 'dnssec' + SIP_MINUS_SERVER = 'sip-server' + VOICE = 'voice' + UNKNOWN = 'unknown' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of TestType 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-streaming/test/test_streaming_api.py b/thousandeyes-sdk-streaming/test/test_streaming_api.py index 51adcd48..5af296e2 100644 --- a/thousandeyes-sdk-streaming/test/test_streaming_api.py +++ b/thousandeyes-sdk-streaming/test/test_streaming_api.py @@ -56,6 +56,11 @@ class TestStreamingApi(unittest.TestCase): "key" : "keyB", "value" : "valueB" } ], + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, "type" : "opentelemetry", "dataModelVersion" : "v2", "customHeaders" : { @@ -71,13 +76,6 @@ class TestStreamingApi(unittest.TestCase): response_body_json = """ { - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "_links" : { "self" : { @@ -93,6 +91,21 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "enabled" : true, + "dataModelVersion" : "v2", + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -101,13 +114,10 @@ class TestStreamingApi(unittest.TestCase): "value" : "valueB" } ], "id" : "342ieu09", - "type" : "opentelemetry", "auditOperation" : { "createdDate" : 1679677853573, "createdBy" : 3962 }, - "enabled" : true, - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" @@ -127,13 +137,6 @@ class TestStreamingApi(unittest.TestCase): response_body_json = """ { - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "_links" : { "self" : { @@ -149,6 +152,21 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "enabled" : true, + "dataModelVersion" : "v2", + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -157,15 +175,12 @@ class TestStreamingApi(unittest.TestCase): "value" : "valueB" } ], "id" : "342ieu09", - "type" : "opentelemetry", "auditOperation" : { "createdDate" : 1679677853573, "updatedBy" : 3962, "createdBy" : 3962, "updatedDate" : 1679677853573 }, - "enabled" : true, - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" @@ -181,13 +196,6 @@ class TestStreamingApi(unittest.TestCase): response_body_json = """ [ { - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "_links" : { "self" : { @@ -203,6 +211,21 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "enabled" : true, + "dataModelVersion" : "v2", + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -211,27 +234,17 @@ class TestStreamingApi(unittest.TestCase): "value" : "valueB" } ], "id" : "342ieu09", - "type" : "opentelemetry", "auditOperation" : { "createdDate" : 1679677853573, "updatedBy" : 3962, "createdBy" : 3962, "updatedDate" : 1679677853573 }, - "enabled" : true, - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" } }, { - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "_links" : { "self" : { @@ -247,6 +260,21 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "enabled" : true, + "dataModelVersion" : "v2", + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -255,15 +283,12 @@ class TestStreamingApi(unittest.TestCase): "value" : "valueB" } ], "id" : "342ieu09", - "type" : "opentelemetry", "auditOperation" : { "createdDate" : 1679677853573, "updatedBy" : 3962, "createdBy" : 3962, "updatedDate" : 1679677853573 }, - "enabled" : true, - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" @@ -303,6 +328,11 @@ class TestStreamingApi(unittest.TestCase): "key" : "keyB", "value" : "valueB" } ], + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" @@ -316,13 +346,6 @@ class TestStreamingApi(unittest.TestCase): response_body_json = """ { - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "_links" : { "self" : { @@ -338,6 +361,21 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "enabled" : true, + "dataModelVersion" : "v2", + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -346,15 +384,12 @@ class TestStreamingApi(unittest.TestCase): "value" : "valueB" } ], "id" : "342ieu09", - "type" : "opentelemetry", "auditOperation" : { "createdDate" : 1679677853573, "updatedBy" : 3962, "createdBy" : 3962, "updatedDate" : 1679677853573 }, - "enabled" : true, - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" diff --git a/thousandeyes-sdk-tags/README.md b/thousandeyes-sdk-tags/README.md index c27505d6..c3ecec74 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.20 +- API version: 7.0.21 - 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 3269ea2a..1d7496fa 100644 --- a/thousandeyes-sdk-test-results/README.md +++ b/thousandeyes-sdk-test-results/README.md @@ -3,7 +3,7 @@ Get test result metrics for Cloud and Enterprise Agent tests. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.20 +- API version: 7.0.21 - 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 4adb9a2d..28661ac1 100644 --- a/thousandeyes-sdk-tests/README.md +++ b/thousandeyes-sdk-tests/README.md @@ -4,7 +4,7 @@ This API supports listing, creating, editing, and deleting Cloud and Enterprise This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.20 +- API version: 7.0.21 - 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 a4061e39..30cfc492 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.20 +- API version: 7.0.21 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator