taegis-sdk-python 1.2.20__tar.gz → 1.2.22__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {taegis_sdk_python-1.2.20/taegis_sdk_python.egg-info → taegis_sdk_python-1.2.22}/PKG-INFO +1 -1
- taegis_sdk_python-1.2.22/taegis_sdk_python/_version.py +1 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/service_core.py +1 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/__init__.py +27 -2
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/types.py +3 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/types.py +24 -11
- taegis_sdk_python-1.2.22/taegis_sdk_python/services/datasources/queries.py +125 -0
- taegis_sdk_python-1.2.22/taegis_sdk_python/services/datasources/types.py +290 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/types.py +3 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/mutations.py +37 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/queries.py +49 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/types.py +187 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/types.py +6 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/queries.py +15 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/types.py +16 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/queries.py +29 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/types.py +9 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/mutations.py +18 -1
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/types.py +115 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/types.py +6 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22/taegis_sdk_python.egg-info}/PKG-INFO +1 -1
- taegis_sdk_python-1.2.20/taegis_sdk_python/_version.py +0 -1
- taegis_sdk_python-1.2.20/taegis_sdk_python/services/datasources/queries.py +0 -54
- taegis_sdk_python-1.2.20/taegis_sdk_python/services/datasources/types.py +0 -120
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/LICENSE +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/MANIFEST.in +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/README.md +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements-dev.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements-test.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/setup.cfg +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/setup.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/_consts.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/authentication.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/config.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/errors.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/types.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/mutations.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/queries.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/subscriptions.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/tokens.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/transport/__init__.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/transport/aiohttp_websockets.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/utils.py +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/SOURCES.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/dependency_links.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/requires.txt +0 -0
- {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.2.22"
|
{taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/__init__.py
RENAMED
|
@@ -88,7 +88,8 @@ class GraphQLService:
|
|
|
88
88
|
proxy_headers: Optional[LooseHeaders] = None,
|
|
89
89
|
trust_env: bool = False,
|
|
90
90
|
ssl: Optional[Union[SSLContext, Literal[False], Fingerprint]] = None,
|
|
91
|
-
execute_timeout: Optional[Union[int, float]] =
|
|
91
|
+
execute_timeout: Optional[Union[int, float]] = 300,
|
|
92
|
+
max_message_size: int = 0,
|
|
92
93
|
): # pylint: disable=too-many-statements
|
|
93
94
|
"""
|
|
94
95
|
GraphQLService
|
|
@@ -107,11 +108,29 @@ class GraphQLService:
|
|
|
107
108
|
Extra HTTP Headers to be included in API calls
|
|
108
109
|
schema_expiry: int, optional
|
|
109
110
|
Expire time for GraphQL Schema Caching in minutes, by default 1
|
|
111
|
+
proxy: str, optional
|
|
112
|
+
Proxy URL for API requests
|
|
113
|
+
Examples:
|
|
114
|
+
http://proxy.example.com:8080
|
|
115
|
+
http://username:password@proxy.example.com:8080
|
|
116
|
+
proxy_auth: aiohttp.BasicAuth, optional
|
|
117
|
+
Examples:
|
|
118
|
+
aiohttp.BasicAuth("username", "password")
|
|
119
|
+
proxy_headers: Optional[LooseHeaders], optional
|
|
120
|
+
Proxy Headers for API requests
|
|
121
|
+
trust_env: bool, optional
|
|
122
|
+
Trust Environment Variables for Proxy Authentication
|
|
123
|
+
ssl: Optional[Union[SSLContext, Literal[False], Fingerprint]], optional
|
|
124
|
+
SSL Context for API requests
|
|
125
|
+
execute_timeout: Optional[Union[int, float]], optional
|
|
126
|
+
Timeout for GraphQL Execute in seconds, by default 30
|
|
127
|
+
max_message_size: int, optional
|
|
128
|
+
Max Message Size for Subscriptions, by default 0
|
|
110
129
|
|
|
111
130
|
Raises
|
|
112
131
|
------
|
|
113
132
|
ValueError
|
|
114
|
-
environment must be charlie, delta, or
|
|
133
|
+
environment must be charlie, delta, echo, or foxtrot (or equivalent)
|
|
115
134
|
"""
|
|
116
135
|
self._environments = environments or TAEGIS_ENVIRONMENT_URLS
|
|
117
136
|
self._environment = environment or list(self._environments)[0]
|
|
@@ -143,6 +162,7 @@ class GraphQLService:
|
|
|
143
162
|
self._trust_env = trust_env
|
|
144
163
|
|
|
145
164
|
self._execute_timeout = execute_timeout
|
|
165
|
+
self._max_message_size = max_message_size
|
|
146
166
|
|
|
147
167
|
self._access_points = None
|
|
148
168
|
self._agent = None
|
|
@@ -295,6 +315,11 @@ class GraphQLService:
|
|
|
295
315
|
"""GraphQL Schema Timeout."""
|
|
296
316
|
return self._context_manager.get("schema_expiry", self._schema_expiry)
|
|
297
317
|
|
|
318
|
+
@property
|
|
319
|
+
def max_message_size(self):
|
|
320
|
+
"""Max Message Size for Subscriptions."""
|
|
321
|
+
return self._context_manager.get("max_message_size", self._max_message_size)
|
|
322
|
+
|
|
298
323
|
@property
|
|
299
324
|
def input_value_deprecation(self):
|
|
300
325
|
"""GraphQL Query Deprecated Input Fields in Schema."""
|
{taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/types.py
RENAMED
|
@@ -2132,6 +2132,9 @@ class AlertsMetadata:
|
|
|
2132
2132
|
description: Optional[str] = field(
|
|
2133
2133
|
default=None, metadata=config(field_name="description")
|
|
2134
2134
|
)
|
|
2135
|
+
read_only: Optional[bool] = field(
|
|
2136
|
+
default=None, metadata=config(field_name="read_only")
|
|
2137
|
+
)
|
|
2135
2138
|
creator: Optional[Creator] = field(
|
|
2136
2139
|
default=None, metadata=config(field_name="creator")
|
|
2137
2140
|
)
|
{taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/types.py
RENAMED
|
@@ -1338,6 +1338,9 @@ class AssetV2:
|
|
|
1338
1338
|
un_installable: Optional[bool] = field(
|
|
1339
1339
|
default=None, metadata=config(field_name="unInstallable")
|
|
1340
1340
|
)
|
|
1341
|
+
agent_policy_version: Optional[str] = field(
|
|
1342
|
+
default=None, metadata=config(field_name="agentPolicyVersion")
|
|
1343
|
+
)
|
|
1341
1344
|
hostnames: Optional[List[HostnameV2]] = field(
|
|
1342
1345
|
default=None, metadata=config(field_name="hostnames")
|
|
1343
1346
|
)
|
|
@@ -1381,17 +1384,6 @@ class BulkReconnectNativeAssetsInput:
|
|
|
1381
1384
|
)
|
|
1382
1385
|
|
|
1383
1386
|
|
|
1384
|
-
@dataclass_json
|
|
1385
|
-
@dataclass(order=True, eq=True, frozen=True)
|
|
1386
|
-
class BulkUninstallNativeAssetsInput:
|
|
1387
|
-
"""BulkUninstallNativeAssetsInput."""
|
|
1388
|
-
|
|
1389
|
-
reason: Optional[str] = field(default=None, metadata=config(field_name="reason"))
|
|
1390
|
-
where: Optional[AssetWhereInputV2] = field(
|
|
1391
|
-
default=None, metadata=config(field_name="where")
|
|
1392
|
-
)
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
1387
|
@dataclass_json
|
|
1396
1388
|
@dataclass(order=True, eq=True, frozen=True)
|
|
1397
1389
|
class AssetsV2:
|
|
@@ -1569,3 +1561,24 @@ class BulkUpdateTagsForEndpointsInputV2:
|
|
|
1569
1561
|
tags: Optional[List[KVTagInputV2]] = field(
|
|
1570
1562
|
default=None, metadata=config(field_name="tags")
|
|
1571
1563
|
)
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
@dataclass_json
|
|
1567
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
1568
|
+
class BulkUninstallNativeAssetsInput:
|
|
1569
|
+
"""BulkUninstallNativeAssetsInput."""
|
|
1570
|
+
|
|
1571
|
+
reason: Optional[str] = field(default=None, metadata=config(field_name="reason"))
|
|
1572
|
+
agent_count: Optional[int] = field(
|
|
1573
|
+
default=None, metadata=config(field_name="agentCount")
|
|
1574
|
+
)
|
|
1575
|
+
filter: Optional[AssetFilter] = field(
|
|
1576
|
+
default=None, metadata=config(field_name="filter")
|
|
1577
|
+
)
|
|
1578
|
+
where: Optional[AssetWhereInputV2] = field(
|
|
1579
|
+
default=None,
|
|
1580
|
+
metadata=config(
|
|
1581
|
+
metadata={"deprecated": True, "deprecation_reason": "use filter.where"},
|
|
1582
|
+
field_name="where",
|
|
1583
|
+
),
|
|
1584
|
+
)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"""Datasources Query."""
|
|
2
|
+
# pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code, wildcard-import, unused-wildcard-import, cyclic-import
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# Autogenerated
|
|
6
|
+
# DO NOT MODIFY
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import logging
|
|
11
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
|
|
12
|
+
|
|
13
|
+
from taegis_sdk_python import GraphQLNoRowsInResultSetError
|
|
14
|
+
from taegis_sdk_python._consts import TaegisEnum
|
|
15
|
+
from taegis_sdk_python.services.datasources.types import *
|
|
16
|
+
from taegis_sdk_python.utils import (
|
|
17
|
+
build_output_string,
|
|
18
|
+
parse_union_result,
|
|
19
|
+
prepare_input,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
23
|
+
from taegis_sdk_python.services.datasources import DatasourcesService
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
log = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class TaegisSDKDatasourcesQuery:
|
|
30
|
+
"""Taegis Datasources Query operations."""
|
|
31
|
+
|
|
32
|
+
def __init__(self, service: DatasourcesService):
|
|
33
|
+
self.service = service
|
|
34
|
+
|
|
35
|
+
def get_data_source_last_seen_asset(
|
|
36
|
+
self, input_: Optional[GetDataSourceInput] = None
|
|
37
|
+
) -> List[LastSeenAsset]:
|
|
38
|
+
"""Fetches the last seen data about all data sources associated with a tenant based on input parameters.
|
|
39
|
+
It provides ability to filter the data by collectorId and sourceId. Authorization permission is
|
|
40
|
+
required with read access to the collector object.."""
|
|
41
|
+
endpoint = "getDataSourceLastSeenAsset"
|
|
42
|
+
|
|
43
|
+
result = self.service.execute_query(
|
|
44
|
+
endpoint=endpoint,
|
|
45
|
+
variables={
|
|
46
|
+
"input": prepare_input(input_),
|
|
47
|
+
},
|
|
48
|
+
output=build_output_string(LastSeenAsset),
|
|
49
|
+
)
|
|
50
|
+
if result.get(endpoint) is not None:
|
|
51
|
+
return LastSeenAsset.schema().load(
|
|
52
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
53
|
+
)
|
|
54
|
+
raise GraphQLNoRowsInResultSetError("for query getDataSourceLastSeenAsset")
|
|
55
|
+
|
|
56
|
+
def get_data_source_last_seen_assets_v2(
|
|
57
|
+
self,
|
|
58
|
+
first: Optional[int] = None,
|
|
59
|
+
last: Optional[int] = None,
|
|
60
|
+
after: Optional[str] = None,
|
|
61
|
+
before: Optional[str] = None,
|
|
62
|
+
filter_: Optional[DataSourceAssetsFilter] = None,
|
|
63
|
+
sort: Optional[Union[LastSeenAssetsSort, TaegisEnum]] = None,
|
|
64
|
+
) -> LastSeenAssets:
|
|
65
|
+
"""Fetches the last seen data about all data sources associated with a tenant based on input parameters.
|
|
66
|
+
It provides ability to filter the data by collectorId and sourceId. The data returned by this query
|
|
67
|
+
is eventually consistent. Consequently, actions such as deleting an asset may not be immediately reflected in the
|
|
68
|
+
result set. Authorization permission is required with read access to the collector object.
|
|
69
|
+
It also supports forward and backward pagination.."""
|
|
70
|
+
endpoint = "getDataSourceLastSeenAssetsV2"
|
|
71
|
+
|
|
72
|
+
result = self.service.execute_query(
|
|
73
|
+
endpoint=endpoint,
|
|
74
|
+
variables={
|
|
75
|
+
"first": prepare_input(first),
|
|
76
|
+
"last": prepare_input(last),
|
|
77
|
+
"after": prepare_input(after),
|
|
78
|
+
"before": prepare_input(before),
|
|
79
|
+
"filter": prepare_input(filter_),
|
|
80
|
+
"sort": prepare_input(sort),
|
|
81
|
+
},
|
|
82
|
+
output=build_output_string(LastSeenAssets),
|
|
83
|
+
)
|
|
84
|
+
if result.get(endpoint) is not None:
|
|
85
|
+
return LastSeenAssets.from_dict(result.get(endpoint))
|
|
86
|
+
raise GraphQLNoRowsInResultSetError("for query getDataSourceLastSeenAssetsV2")
|
|
87
|
+
|
|
88
|
+
def get_data_source_last_seen_asset_filter_values(
|
|
89
|
+
self, input_: List[Union[FilterCriteria, TaegisEnum]]
|
|
90
|
+
) -> List[FilterValues]:
|
|
91
|
+
"""Provides clients with the ability to retrieve the possible values for a given filter criteria. Note that unique
|
|
92
|
+
values will be returned, for enum types, only those observed in the data set will be returned.."""
|
|
93
|
+
endpoint = "getDataSourceLastSeenAssetFilterValues"
|
|
94
|
+
|
|
95
|
+
result = self.service.execute_query(
|
|
96
|
+
endpoint=endpoint,
|
|
97
|
+
variables={
|
|
98
|
+
"input": prepare_input(input_),
|
|
99
|
+
},
|
|
100
|
+
output=build_output_string(FilterValues),
|
|
101
|
+
)
|
|
102
|
+
if result.get(endpoint) is not None:
|
|
103
|
+
return FilterValues.schema().load(
|
|
104
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
105
|
+
)
|
|
106
|
+
raise GraphQLNoRowsInResultSetError(
|
|
107
|
+
"for query getDataSourceLastSeenAssetFilterValues"
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
def data_source_last_seen_assets_query(
|
|
111
|
+
self, input_: LastSeenQueryInput
|
|
112
|
+
) -> LastSeenAssetsQueryResult:
|
|
113
|
+
"""Allows querying last seen data for assets using CQL."""
|
|
114
|
+
endpoint = "dataSourceLastSeenAssetsQuery"
|
|
115
|
+
|
|
116
|
+
result = self.service.execute_query(
|
|
117
|
+
endpoint=endpoint,
|
|
118
|
+
variables={
|
|
119
|
+
"input": prepare_input(input_),
|
|
120
|
+
},
|
|
121
|
+
output=build_output_string(LastSeenAssetsQueryResult),
|
|
122
|
+
)
|
|
123
|
+
if result.get(endpoint) is not None:
|
|
124
|
+
return LastSeenAssetsQueryResult.from_dict(result.get(endpoint))
|
|
125
|
+
raise GraphQLNoRowsInResultSetError("for query dataSourceLastSeenAssetsQuery")
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"""Datasources Types and Enums."""
|
|
2
|
+
# pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code
|
|
3
|
+
|
|
4
|
+
# Autogenerated
|
|
5
|
+
# DO NOT MODIFY
|
|
6
|
+
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
|
+
|
|
9
|
+
from enum import Enum
|
|
10
|
+
|
|
11
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
12
|
+
|
|
13
|
+
from dataclasses_json import config, dataclass_json
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from taegis_sdk_python._consts import TaegisEnum
|
|
17
|
+
from taegis_sdk_python.utils import encode_enum, decode_enum
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AuthzObject(str, Enum):
|
|
21
|
+
"""AuthzObject."""
|
|
22
|
+
|
|
23
|
+
COLLECTOR = "COLLECTOR"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class AuthzAction(str, Enum):
|
|
27
|
+
"""AuthzAction."""
|
|
28
|
+
|
|
29
|
+
READ = "READ"
|
|
30
|
+
DELETE = "DELETE"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class HealthState(str, Enum):
|
|
34
|
+
"""HealthState."""
|
|
35
|
+
|
|
36
|
+
HEALTHY = "HEALTHY"
|
|
37
|
+
NO_DATA = "NO_DATA"
|
|
38
|
+
WARNING = "WARNING"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class FilterCriteria(str, Enum):
|
|
42
|
+
"""FilterCriteria."""
|
|
43
|
+
|
|
44
|
+
SOURCE_ID = "SOURCE_ID"
|
|
45
|
+
STATUS = "STATUS"
|
|
46
|
+
TYPE = "TYPE"
|
|
47
|
+
SENSOR_TYPE = "SENSOR_TYPE"
|
|
48
|
+
XDR_RELAY = "XDR_RELAY"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class LastSeenAssetsSort(str, Enum):
|
|
52
|
+
"""LastSeenAssetsSort."""
|
|
53
|
+
|
|
54
|
+
SOURCE_ID_ASC = "SOURCE_ID_ASC"
|
|
55
|
+
SOURCE_ID_DESC = "SOURCE_ID_DESC"
|
|
56
|
+
STATUS_ASC = "STATUS_ASC"
|
|
57
|
+
STATUS_DESC = "STATUS_DESC"
|
|
58
|
+
LOG_LAST_SEEN_ASC = "LOG_LAST_SEEN_ASC"
|
|
59
|
+
LOG_LAST_SEEN_DESC = "LOG_LAST_SEEN_DESC"
|
|
60
|
+
TYPE_ASC = "TYPE_ASC"
|
|
61
|
+
TYPE_DESC = "TYPE_DESC"
|
|
62
|
+
SENSOR_TYPE_ASC = "SENSOR_TYPE_ASC"
|
|
63
|
+
SENSOR_TYPE_DESC = "SENSOR_TYPE_DESC"
|
|
64
|
+
COLLECTOR_ID_ASC = "COLLECTOR_ID_ASC"
|
|
65
|
+
COLLECTOR_ID_DESC = "COLLECTOR_ID_DESC"
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
@dataclass_json
|
|
69
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
70
|
+
class DeletedAsset:
|
|
71
|
+
"""DeletedAsset."""
|
|
72
|
+
|
|
73
|
+
source_id: Optional[str] = field(
|
|
74
|
+
default=None, metadata=config(field_name="sourceId")
|
|
75
|
+
)
|
|
76
|
+
collector_id: Optional[str] = field(
|
|
77
|
+
default=None, metadata=config(field_name="collectorID")
|
|
78
|
+
)
|
|
79
|
+
successful: Optional[bool] = field(
|
|
80
|
+
default=None, metadata=config(field_name="successful")
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@dataclass_json
|
|
85
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
86
|
+
class DeleteAssetInput:
|
|
87
|
+
"""DeleteAssetInput."""
|
|
88
|
+
|
|
89
|
+
source_id: Optional[str] = field(
|
|
90
|
+
default=None, metadata=config(field_name="sourceId")
|
|
91
|
+
)
|
|
92
|
+
collector_id: Optional[str] = field(
|
|
93
|
+
default=None, metadata=config(field_name="collectorId")
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@dataclass_json
|
|
98
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
99
|
+
class GetDataSourceInput:
|
|
100
|
+
"""GetDataSourceInput."""
|
|
101
|
+
|
|
102
|
+
collector_id: Optional[str] = field(
|
|
103
|
+
default=None, metadata=config(field_name="collectorId")
|
|
104
|
+
)
|
|
105
|
+
source_id: Optional[str] = field(
|
|
106
|
+
default=None, metadata=config(field_name="sourceId")
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@dataclass_json
|
|
111
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
112
|
+
class PageInfo:
|
|
113
|
+
"""PageInfo."""
|
|
114
|
+
|
|
115
|
+
end_cursor: Optional[str] = field(
|
|
116
|
+
default=None, metadata=config(field_name="endCursor")
|
|
117
|
+
)
|
|
118
|
+
start_cursor: Optional[str] = field(
|
|
119
|
+
default=None, metadata=config(field_name="startCursor")
|
|
120
|
+
)
|
|
121
|
+
has_next_page: Optional[bool] = field(
|
|
122
|
+
default=None, metadata=config(field_name="hasNextPage")
|
|
123
|
+
)
|
|
124
|
+
has_previous_page: Optional[bool] = field(
|
|
125
|
+
default=None, metadata=config(field_name="hasPreviousPage")
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@dataclass_json
|
|
130
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
131
|
+
class QLPageCursor:
|
|
132
|
+
"""QLPageCursor."""
|
|
133
|
+
|
|
134
|
+
next_cursor: Optional[str] = field(
|
|
135
|
+
default=None, metadata=config(field_name="nextCursor")
|
|
136
|
+
)
|
|
137
|
+
previous_cursor: Optional[str] = field(
|
|
138
|
+
default=None, metadata=config(field_name="previousCursor")
|
|
139
|
+
)
|
|
140
|
+
cursor: Optional[str] = field(default=None, metadata=config(field_name="cursor"))
|
|
141
|
+
count: Optional[int] = field(default=None, metadata=config(field_name="count"))
|
|
142
|
+
total_count: Optional[int] = field(
|
|
143
|
+
default=None, metadata=config(field_name="totalCount")
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@dataclass_json
|
|
148
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
149
|
+
class DataSourcesWhereInput:
|
|
150
|
+
"""DataSourcesWhereInput."""
|
|
151
|
+
|
|
152
|
+
source_id: Optional[List[str]] = field(
|
|
153
|
+
default=None, metadata=config(field_name="sourceId")
|
|
154
|
+
)
|
|
155
|
+
type: Optional[List[str]] = field(default=None, metadata=config(field_name="type"))
|
|
156
|
+
sensor_type: Optional[List[str]] = field(
|
|
157
|
+
default=None, metadata=config(field_name="sensorType")
|
|
158
|
+
)
|
|
159
|
+
collector_id: Optional[List[str]] = field(
|
|
160
|
+
default=None, metadata=config(field_name="collectorId")
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
@dataclass_json
|
|
165
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
166
|
+
class LastSeenQueryInput:
|
|
167
|
+
"""LastSeenQueryInput."""
|
|
168
|
+
|
|
169
|
+
ql: Optional[str] = field(default=None, metadata=config(field_name="ql"))
|
|
170
|
+
cursor: Optional[str] = field(default=None, metadata=config(field_name="cursor"))
|
|
171
|
+
count: Optional[int] = field(default=None, metadata=config(field_name="count"))
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
@dataclass_json
|
|
175
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
176
|
+
class FilterValue:
|
|
177
|
+
"""FilterValue."""
|
|
178
|
+
|
|
179
|
+
value: Optional[str] = field(default=None, metadata=config(field_name="value"))
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@dataclass_json
|
|
183
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
184
|
+
class ClusterIdentity:
|
|
185
|
+
"""ClusterIdentity."""
|
|
186
|
+
|
|
187
|
+
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
188
|
+
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
@dataclass_json
|
|
192
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
193
|
+
class FilterValues:
|
|
194
|
+
"""FilterValues."""
|
|
195
|
+
|
|
196
|
+
filter: Optional[Union[FilterCriteria, TaegisEnum]] = field(
|
|
197
|
+
default=None,
|
|
198
|
+
metadata=config(
|
|
199
|
+
encoder=encode_enum,
|
|
200
|
+
decoder=lambda x: decode_enum(FilterCriteria, x),
|
|
201
|
+
field_name="filter",
|
|
202
|
+
),
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
@dataclass_json
|
|
207
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
208
|
+
class LastSeenAsset:
|
|
209
|
+
"""LastSeenAsset."""
|
|
210
|
+
|
|
211
|
+
source_id: Optional[str] = field(
|
|
212
|
+
default=None, metadata=config(field_name="sourceId")
|
|
213
|
+
)
|
|
214
|
+
service: Optional[str] = field(default=None, metadata=config(field_name="service"))
|
|
215
|
+
sensor_type: Optional[str] = field(
|
|
216
|
+
default=None, metadata=config(field_name="sensorType")
|
|
217
|
+
)
|
|
218
|
+
collector_id: Optional[str] = field(
|
|
219
|
+
default=None, metadata=config(field_name="collectorID")
|
|
220
|
+
)
|
|
221
|
+
last_seen: Optional[int] = field(
|
|
222
|
+
default=None, metadata=config(field_name="lastSeen")
|
|
223
|
+
)
|
|
224
|
+
health: Optional[Union[HealthState, TaegisEnum]] = field(
|
|
225
|
+
default=None,
|
|
226
|
+
metadata=config(
|
|
227
|
+
encoder=encode_enum,
|
|
228
|
+
decoder=lambda x: decode_enum(HealthState, x),
|
|
229
|
+
field_name="health",
|
|
230
|
+
),
|
|
231
|
+
)
|
|
232
|
+
collector: Optional[ClusterIdentity] = field(
|
|
233
|
+
default=None, metadata=config(field_name="collector")
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
@dataclass_json
|
|
238
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
239
|
+
class DataSourceAssetsFilter:
|
|
240
|
+
"""DataSourceAssetsFilter."""
|
|
241
|
+
|
|
242
|
+
status: Optional[List[Union[HealthState, TaegisEnum]]] = field(
|
|
243
|
+
default=None,
|
|
244
|
+
metadata=config(
|
|
245
|
+
encoder=encode_enum,
|
|
246
|
+
decoder=lambda x: decode_enum(HealthState, x),
|
|
247
|
+
field_name="status",
|
|
248
|
+
),
|
|
249
|
+
)
|
|
250
|
+
where: Optional[DataSourcesWhereInput] = field(
|
|
251
|
+
default=None, metadata=config(field_name="where")
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
@dataclass_json
|
|
256
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
257
|
+
class LastSeenAssets:
|
|
258
|
+
"""LastSeenAssets."""
|
|
259
|
+
|
|
260
|
+
total_count: Optional[int] = field(
|
|
261
|
+
default=None, metadata=config(field_name="totalCount")
|
|
262
|
+
)
|
|
263
|
+
assets: Optional[List[LastSeenAsset]] = field(
|
|
264
|
+
default=None, metadata=config(field_name="assets")
|
|
265
|
+
)
|
|
266
|
+
page_info: Optional[PageInfo] = field(
|
|
267
|
+
default=None, metadata=config(field_name="pageInfo")
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
@dataclass_json
|
|
272
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
273
|
+
class LastSeenAssetsQueryResult:
|
|
274
|
+
"""LastSeenAssetsQueryResult."""
|
|
275
|
+
|
|
276
|
+
aggregations: Optional[List[dict]] = field(
|
|
277
|
+
default=None, metadata=config(field_name="aggregations")
|
|
278
|
+
)
|
|
279
|
+
assets: Optional[List[LastSeenAsset]] = field(
|
|
280
|
+
default=None, metadata=config(field_name="assets")
|
|
281
|
+
)
|
|
282
|
+
pagination: Optional[QLPageCursor] = field(
|
|
283
|
+
default=None, metadata=config(field_name="pagination")
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
FilterValueResponse = Union[
|
|
288
|
+
FilterValue,
|
|
289
|
+
ClusterIdentity,
|
|
290
|
+
]
|
{taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/types.py
RENAMED
|
@@ -840,6 +840,9 @@ class HostDetails:
|
|
|
840
840
|
class FileMarkingStatus:
|
|
841
841
|
"""FileMarkingStatus."""
|
|
842
842
|
|
|
843
|
+
file_resource: Optional[str] = field(
|
|
844
|
+
default=None, metadata=config(field_name="fileResource")
|
|
845
|
+
)
|
|
843
846
|
explanation: Optional[str] = field(
|
|
844
847
|
default=None, metadata=config(field_name="explanation")
|
|
845
848
|
)
|
|
@@ -139,3 +139,40 @@ class TaegisSDKIsensorMutation:
|
|
|
139
139
|
raise GraphQLNoRowsInResultSetError(
|
|
140
140
|
"for mutation iSensorRuleVariableCustomizations"
|
|
141
141
|
)
|
|
142
|
+
|
|
143
|
+
def ndr_save_maintenance_window(
|
|
144
|
+
self, input_: NdrMaintenanceWindowInput
|
|
145
|
+
) -> NdrMaintenanceWindowResult:
|
|
146
|
+
"""Create a new ndr device maintenance window of a given input."""
|
|
147
|
+
endpoint = "ndrSaveMaintenanceWindow"
|
|
148
|
+
|
|
149
|
+
result = self.service.execute_mutation(
|
|
150
|
+
endpoint=endpoint,
|
|
151
|
+
variables={
|
|
152
|
+
"input": prepare_input(input_),
|
|
153
|
+
},
|
|
154
|
+
output=build_output_string(NdrMaintenanceWindowResult),
|
|
155
|
+
)
|
|
156
|
+
if result.get(endpoint) is not None:
|
|
157
|
+
return NdrMaintenanceWindowResult.from_dict(result.get(endpoint))
|
|
158
|
+
raise GraphQLNoRowsInResultSetError("for mutation ndrSaveMaintenanceWindow")
|
|
159
|
+
|
|
160
|
+
def ndr_defer_maintenance_event_device(
|
|
161
|
+
self, id_: str, idn: str
|
|
162
|
+
) -> NdrDeferEventDeviceResult:
|
|
163
|
+
"""Defer Event Device event for given id."""
|
|
164
|
+
endpoint = "ndrDeferMaintenanceEventDevice"
|
|
165
|
+
|
|
166
|
+
result = self.service.execute_mutation(
|
|
167
|
+
endpoint=endpoint,
|
|
168
|
+
variables={
|
|
169
|
+
"id": prepare_input(id_),
|
|
170
|
+
"idn": prepare_input(idn),
|
|
171
|
+
},
|
|
172
|
+
output=build_output_string(NdrDeferEventDeviceResult),
|
|
173
|
+
)
|
|
174
|
+
if result.get(endpoint) is not None:
|
|
175
|
+
return NdrDeferEventDeviceResult.from_dict(result.get(endpoint))
|
|
176
|
+
raise GraphQLNoRowsInResultSetError(
|
|
177
|
+
"for mutation ndrDeferMaintenanceEventDevice"
|
|
178
|
+
)
|
{taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/queries.py
RENAMED
|
@@ -45,6 +45,21 @@ class TaegisSDKIsensorQuery:
|
|
|
45
45
|
)
|
|
46
46
|
raise GraphQLNoRowsInResultSetError("for query iSensorDetails")
|
|
47
47
|
|
|
48
|
+
def i_sensor_details_by_id(self, id_: str) -> IsensorDetail:
|
|
49
|
+
"""Get NDR overview data."""
|
|
50
|
+
endpoint = "iSensorDetailsByID"
|
|
51
|
+
|
|
52
|
+
result = self.service.execute_query(
|
|
53
|
+
endpoint=endpoint,
|
|
54
|
+
variables={
|
|
55
|
+
"id": prepare_input(id_),
|
|
56
|
+
},
|
|
57
|
+
output=build_output_string(IsensorDetail),
|
|
58
|
+
)
|
|
59
|
+
if result.get(endpoint) is not None:
|
|
60
|
+
return IsensorDetail.from_dict(result.get(endpoint))
|
|
61
|
+
raise GraphQLNoRowsInResultSetError("for query iSensorDetailsByID")
|
|
62
|
+
|
|
48
63
|
def i_sensor_firewall_rules(self, id_: str) -> IsensorFirewallRules:
|
|
49
64
|
"""Get iSensor firewall rules."""
|
|
50
65
|
endpoint = "iSensorFirewallRules"
|
|
@@ -170,3 +185,37 @@ class TaegisSDKIsensorQuery:
|
|
|
170
185
|
if result.get(endpoint) is not None:
|
|
171
186
|
return ISensorArtifact.from_dict(result.get(endpoint))
|
|
172
187
|
raise GraphQLNoRowsInResultSetError("for query iSensorChangeMgmtReportLocation")
|
|
188
|
+
|
|
189
|
+
def ndr_maintenance_windows(self, idn: str) -> List[NdrMaintenanceWindowResult]:
|
|
190
|
+
"""Get NDR Device Maintenance window."""
|
|
191
|
+
endpoint = "ndrMaintenanceWindows"
|
|
192
|
+
|
|
193
|
+
result = self.service.execute_query(
|
|
194
|
+
endpoint=endpoint,
|
|
195
|
+
variables={
|
|
196
|
+
"idn": prepare_input(idn),
|
|
197
|
+
},
|
|
198
|
+
output=build_output_string(NdrMaintenanceWindowResult),
|
|
199
|
+
)
|
|
200
|
+
if result.get(endpoint) is not None:
|
|
201
|
+
return NdrMaintenanceWindowResult.schema().load(
|
|
202
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
203
|
+
)
|
|
204
|
+
raise GraphQLNoRowsInResultSetError("for query ndrMaintenanceWindows")
|
|
205
|
+
|
|
206
|
+
def ndr_maintenance_event_devices(self, idn: str) -> List[NdrEventDeviceResult]:
|
|
207
|
+
"""Get Upcoming NDR EventDevice Events scheduled for idn."""
|
|
208
|
+
endpoint = "ndrMaintenanceEventDevices"
|
|
209
|
+
|
|
210
|
+
result = self.service.execute_query(
|
|
211
|
+
endpoint=endpoint,
|
|
212
|
+
variables={
|
|
213
|
+
"idn": prepare_input(idn),
|
|
214
|
+
},
|
|
215
|
+
output=build_output_string(NdrEventDeviceResult),
|
|
216
|
+
)
|
|
217
|
+
if result.get(endpoint) is not None:
|
|
218
|
+
return NdrEventDeviceResult.schema().load(
|
|
219
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
220
|
+
)
|
|
221
|
+
raise GraphQLNoRowsInResultSetError("for query ndrMaintenanceEventDevices")
|