taegis-sdk-python 1.0.0rc1__tar.gz → 1.0.2__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.0.0rc1/taegis_sdk_python.egg-info → taegis-sdk-python-1.0.2}/PKG-INFO +1 -1
- taegis-sdk-python-1.0.2/taegis_sdk_python/_version.py +1 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/service_core.py +16 -20
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/__init__.py +18 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/agent/types.py +2 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/types.py +24 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/types.py +6 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/queries.py +40 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/types.py +27 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_management_service/types.py +3 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/types.py +66 -20
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/types.py +48 -39
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/fast_ioc/__init__.py +29 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/fast_ioc/mutations.py +31 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/fast_ioc/queries.py +89 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/fast_ioc/subscriptions.py +31 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/fast_ioc/types.py +114 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations2/types.py +52 -21
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/tenant_profiles/__init__.py +33 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/tenant_profiles/mutations.py +456 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/tenant_profiles/queries.py +240 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/tenant_profiles/subscriptions.py +31 -0
- taegis-sdk-python-1.0.2/taegis_sdk_python/services/tenant_profiles/types.py +590 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/tenants/mutations.py +17 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/tenants/types.py +132 -56
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/utils.py +47 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2/taegis_sdk_python.egg-info}/PKG-INFO +1 -1
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python.egg-info/SOURCES.txt +10 -0
- taegis-sdk-python-1.0.0rc1/taegis_sdk_python/_version.py +0 -1
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/LICENSE +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/MANIFEST.in +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/README.md +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/requirements-dev.txt +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/requirements-test.txt +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/requirements.txt +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/setup.cfg +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/setup.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/_consts.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/authentication.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/config.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/errors.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/access_points/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/access_points/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/access_points/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/access_points/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/agent/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/agent/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/agent/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/alerts/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/alerts/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/alerts/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/alerts/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/audits/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/audits/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/audits/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/audits/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/comments/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/comments/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/comments/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/comments/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/detector_registry/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/entity_profile/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/entity_profile/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/entity_profile/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/entity_profile/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/entity_profile/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/event_search/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/event_search/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/event_search/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/event_search/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations2/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations2/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notebooks/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notebooks/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notifications/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notifications/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notifications/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/notifications/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/preferences/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/preferences/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/preferences/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/preferences/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/roadrunner/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/rules/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/rules/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/rules/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/rules/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/sharelinks/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/tenants/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/tenants/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/threat/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/threat/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/threat/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/threat/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/trip/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/trip/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/trip/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/trip/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/users/__init__.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/users/mutations.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/users/queries.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/users/subscriptions.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/users/types.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/tokens.py +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python.egg-info/dependency_links.txt +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python.egg-info/requires.txt +0 -0
- {taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.0.2"
|
|
@@ -13,7 +13,7 @@ from gql.transport.websockets import WebsocketsTransport
|
|
|
13
13
|
from graphql import GraphQLField, GraphQLSchema, GraphQLError
|
|
14
14
|
from taegis_sdk_python._version import __version__
|
|
15
15
|
from taegis_sdk_python.errors import InvalidGraphQLEndpoint
|
|
16
|
-
from taegis_sdk_python.utils import async_block, prepare_variables
|
|
16
|
+
from taegis_sdk_python.utils import async_block, prepare_variables, remove_node
|
|
17
17
|
|
|
18
18
|
if TYPE_CHECKING: # pragma: no cover
|
|
19
19
|
from taegis_sdk_python.services import GraphQLService
|
|
@@ -252,35 +252,31 @@ class ServiceCore:
|
|
|
252
252
|
str
|
|
253
253
|
GraphQL string
|
|
254
254
|
"""
|
|
255
|
+
query_string = self._build_output_query(
|
|
256
|
+
operation_type=operation_type,
|
|
257
|
+
endpoint=endpoint,
|
|
258
|
+
graphql_field=graphql_field,
|
|
259
|
+
output=output,
|
|
260
|
+
)
|
|
261
|
+
query_string = " ".join(query_string.split())
|
|
262
|
+
|
|
255
263
|
# open a connection for introspection and download schema
|
|
256
264
|
with self.sync_client as session:
|
|
257
265
|
# if multiple fields are invalid, we want to iterate until the
|
|
258
266
|
# output string is valid
|
|
259
|
-
|
|
260
|
-
query_string = self._build_output_query(
|
|
261
|
-
operation_type=operation_type,
|
|
262
|
-
endpoint=endpoint,
|
|
263
|
-
graphql_field=graphql_field,
|
|
264
|
-
output=output,
|
|
265
|
-
)
|
|
266
|
-
|
|
267
|
-
# we don't want to infinitely process this, so if we break
|
|
268
|
-
# if the output string doesn't exist, or all the fields have been
|
|
269
|
-
# removed
|
|
270
|
-
if not (output or any(char not in {" ", "{", "}"} for char in output)):
|
|
271
|
-
break
|
|
272
|
-
|
|
267
|
+
for _ in range(10000):
|
|
273
268
|
try:
|
|
274
269
|
session.client.validate(gql(query_string))
|
|
275
270
|
break
|
|
276
271
|
|
|
277
272
|
except GraphQLError as exc:
|
|
278
273
|
if "Cannot query field" in exc.message:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
274
|
+
log.warning(
|
|
275
|
+
f"{self.service.environment} - field {exc.nodes[0].name.value} not found. Removing from query string..."
|
|
276
|
+
)
|
|
277
|
+
query_string = remove_node(
|
|
278
|
+
query_string, exc.nodes[0], exc.locations[0]
|
|
279
|
+
)
|
|
284
280
|
else:
|
|
285
281
|
raise exc
|
|
286
282
|
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/__init__.py
RENAMED
|
@@ -28,6 +28,7 @@ from taegis_sdk_python.services.entity_profile import EntityProfileService
|
|
|
28
28
|
from taegis_sdk_python.services.event_search import EventSearchService
|
|
29
29
|
from taegis_sdk_python.services.events import EventsService
|
|
30
30
|
from taegis_sdk_python.services.exports import ExportsService
|
|
31
|
+
from taegis_sdk_python.services.fast_ioc import FastIocService
|
|
31
32
|
from taegis_sdk_python.services.investigations import InvestigationsService
|
|
32
33
|
from taegis_sdk_python.services.investigations2 import Investigations2Service
|
|
33
34
|
from taegis_sdk_python.services.mitre_attack_info import MitreAttackInfoService
|
|
@@ -37,6 +38,7 @@ from taegis_sdk_python.services.preferences import PreferencesService
|
|
|
37
38
|
from taegis_sdk_python.services.roadrunner import RoadrunnerService
|
|
38
39
|
from taegis_sdk_python.services.rules import RulesService
|
|
39
40
|
from taegis_sdk_python.services.sharelinks import SharelinksService
|
|
41
|
+
from taegis_sdk_python.services.tenant_profiles import TenantProfilesService
|
|
40
42
|
from taegis_sdk_python.services.tenants import TenantsService
|
|
41
43
|
from taegis_sdk_python.services.threat import ThreatService
|
|
42
44
|
from taegis_sdk_python.services.trip import TripService
|
|
@@ -108,6 +110,7 @@ class GraphQLService:
|
|
|
108
110
|
self._event_search = None
|
|
109
111
|
self._events = None
|
|
110
112
|
self._exports = None
|
|
113
|
+
self._fast_ioc = None
|
|
111
114
|
self._investigations = None
|
|
112
115
|
self._investigations2 = None
|
|
113
116
|
self._mitre_attack_info = None
|
|
@@ -118,6 +121,7 @@ class GraphQLService:
|
|
|
118
121
|
self._rules = None
|
|
119
122
|
self._core = None
|
|
120
123
|
self._sharelinks = None
|
|
124
|
+
self._tenant_profiles = None
|
|
121
125
|
self._tenants = None
|
|
122
126
|
self._threat = None
|
|
123
127
|
self._trip = None
|
|
@@ -313,6 +317,13 @@ class GraphQLService:
|
|
|
313
317
|
self._exports = ExportsService(self)
|
|
314
318
|
return self._exports
|
|
315
319
|
|
|
320
|
+
@property
|
|
321
|
+
def fast_ioc(self):
|
|
322
|
+
"""Fast IOC Service Endpoint."""
|
|
323
|
+
if not self._fast_ioc:
|
|
324
|
+
self._fast_ioc = FastIocService(self)
|
|
325
|
+
return self._fast_ioc
|
|
326
|
+
|
|
316
327
|
@property
|
|
317
328
|
def investigations(self):
|
|
318
329
|
"""Investigations Service Endpoint."""
|
|
@@ -383,6 +394,13 @@ class GraphQLService:
|
|
|
383
394
|
self._sharelinks = SharelinksService(self)
|
|
384
395
|
return self._sharelinks
|
|
385
396
|
|
|
397
|
+
@property
|
|
398
|
+
def tenant_profiles(self):
|
|
399
|
+
"""Tenant Profiles Service Endpoint."""
|
|
400
|
+
if not self._tenant_profiles:
|
|
401
|
+
self._tenant_profiles = TenantProfilesService(self)
|
|
402
|
+
return self._tenant_profiles
|
|
403
|
+
|
|
386
404
|
@property
|
|
387
405
|
def tenants(self):
|
|
388
406
|
"""Tenants Service Endpoint."""
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/assets2/types.py
RENAMED
|
@@ -425,28 +425,43 @@ class AssetWhereInputV2:
|
|
|
425
425
|
group_name_contains: Optional[str] = field(
|
|
426
426
|
default=None, metadata=config(field_name="groupName_contains")
|
|
427
427
|
)
|
|
428
|
+
group_name_autocomplete: Optional[str] = field(
|
|
429
|
+
default=None, metadata=config(field_name="groupName_autocomplete")
|
|
430
|
+
)
|
|
428
431
|
host_id: Optional[str] = field(default=None, metadata=config(field_name="hostId"))
|
|
429
432
|
host_id_contains: Optional[str] = field(
|
|
430
433
|
default=None, metadata=config(field_name="hostId_contains")
|
|
431
434
|
)
|
|
435
|
+
host_id_autocomplete: Optional[str] = field(
|
|
436
|
+
default=None, metadata=config(field_name="hostId_autocomplete")
|
|
437
|
+
)
|
|
432
438
|
hostname: Optional[str] = field(
|
|
433
439
|
default=None, metadata=config(field_name="hostname")
|
|
434
440
|
)
|
|
435
441
|
hostname_contains: Optional[str] = field(
|
|
436
442
|
default=None, metadata=config(field_name="hostname_contains")
|
|
437
443
|
)
|
|
444
|
+
hostname_autocomplete: Optional[str] = field(
|
|
445
|
+
default=None, metadata=config(field_name="hostname_autocomplete")
|
|
446
|
+
)
|
|
438
447
|
investigation_id: Optional[str] = field(
|
|
439
448
|
default=None, metadata=config(field_name="investigationId")
|
|
440
449
|
)
|
|
441
450
|
investigation_id_contains: Optional[str] = field(
|
|
442
451
|
default=None, metadata=config(field_name="investigationId_contains")
|
|
443
452
|
)
|
|
453
|
+
investigation_id_autocomplete: Optional[str] = field(
|
|
454
|
+
default=None, metadata=config(field_name="investigationId_autocomplete")
|
|
455
|
+
)
|
|
444
456
|
ip_address: Optional[str] = field(
|
|
445
457
|
default=None, metadata=config(field_name="ipAddress")
|
|
446
458
|
)
|
|
447
459
|
ip_address_contains: Optional[str] = field(
|
|
448
460
|
default=None, metadata=config(field_name="ipAddress_contains")
|
|
449
461
|
)
|
|
462
|
+
ip_address_autocomplete: Optional[str] = field(
|
|
463
|
+
default=None, metadata=config(field_name="ipAddress_autocomplete")
|
|
464
|
+
)
|
|
450
465
|
isolation_status: Optional[str] = field(
|
|
451
466
|
default=None, metadata=config(field_name="isolationStatus")
|
|
452
467
|
)
|
|
@@ -471,6 +486,9 @@ class AssetWhereInputV2:
|
|
|
471
486
|
mac_address_contains: Optional[str] = field(
|
|
472
487
|
default=None, metadata=config(field_name="macAddress_contains")
|
|
473
488
|
)
|
|
489
|
+
mac_address_autocomplete: Optional[str] = field(
|
|
490
|
+
default=None, metadata=config(field_name="macAddress_autocomplete")
|
|
491
|
+
)
|
|
474
492
|
os_distributor: Optional[str] = field(
|
|
475
493
|
default=None, metadata=config(field_name="osDistributor")
|
|
476
494
|
)
|
|
@@ -507,6 +525,9 @@ class AssetWhereInputV2:
|
|
|
507
525
|
username_contains: Optional[str] = field(
|
|
508
526
|
default=None, metadata=config(field_name="username_contains")
|
|
509
527
|
)
|
|
528
|
+
username_autocomplete: Optional[str] = field(
|
|
529
|
+
default=None, metadata=config(field_name="username_autocomplete")
|
|
530
|
+
)
|
|
510
531
|
and_: Optional[List["AssetWhereInputV2"]] = field(
|
|
511
532
|
default=None, metadata=config(field_name="and")
|
|
512
533
|
)
|
|
@@ -522,6 +543,9 @@ class AssetWhereInputV2:
|
|
|
522
543
|
tags_contains: Optional[TagWhereInputV2] = field(
|
|
523
544
|
default=None, metadata=config(field_name="tags_contains")
|
|
524
545
|
)
|
|
546
|
+
tags_autocomplete: Optional[TagWhereInputV2] = field(
|
|
547
|
+
default=None, metadata=config(field_name="tags_autocomplete")
|
|
548
|
+
)
|
|
525
549
|
|
|
526
550
|
|
|
527
551
|
@dataclass_json
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/clients/types.py
RENAMED
|
@@ -72,6 +72,12 @@ class Client:
|
|
|
72
72
|
environment: Optional[str] = field(
|
|
73
73
|
default=None, metadata=config(field_name="environment")
|
|
74
74
|
)
|
|
75
|
+
token_request_time: Optional[str] = field(
|
|
76
|
+
default=None, metadata=config(field_name="token_request_time")
|
|
77
|
+
)
|
|
78
|
+
token_request_count: Optional[int] = field(
|
|
79
|
+
default=None, metadata=config(field_name="token_request_count")
|
|
80
|
+
)
|
|
75
81
|
role_assignments: Optional[List[ClientRoleAssignment]] = field(
|
|
76
82
|
default=None, metadata=config(field_name="role_assignments")
|
|
77
83
|
)
|
|
@@ -45,6 +45,46 @@ class TaegisSDKCollectorQuery:
|
|
|
45
45
|
return Cluster.from_dict(result.get(endpoint))
|
|
46
46
|
raise GraphQLNoRowsInResultSetError("for query getCluster")
|
|
47
47
|
|
|
48
|
+
def get_cluster_backlog_count(
|
|
49
|
+
self, cluster_id: str, time_range: TimeRange
|
|
50
|
+
) -> List[ClusterNodeTimeSeries]:
|
|
51
|
+
"""None."""
|
|
52
|
+
endpoint = "getClusterBacklogCount"
|
|
53
|
+
|
|
54
|
+
result = self.service.execute_query(
|
|
55
|
+
endpoint=endpoint,
|
|
56
|
+
variables={
|
|
57
|
+
"clusterID": prepare_input(cluster_id),
|
|
58
|
+
"timeRange": prepare_input(time_range),
|
|
59
|
+
},
|
|
60
|
+
output=build_output_string(ClusterNodeTimeSeries),
|
|
61
|
+
)
|
|
62
|
+
if result.get(endpoint) is not None:
|
|
63
|
+
return ClusterNodeTimeSeries.schema().load(
|
|
64
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
65
|
+
)
|
|
66
|
+
raise GraphQLNoRowsInResultSetError("for query getClusterBacklogCount")
|
|
67
|
+
|
|
68
|
+
def get_cluster_backlog_age(
|
|
69
|
+
self, cluster_id: str, time_range: TimeRange
|
|
70
|
+
) -> List[ClusterNodeTimeSeries]:
|
|
71
|
+
"""None."""
|
|
72
|
+
endpoint = "getClusterBacklogAge"
|
|
73
|
+
|
|
74
|
+
result = self.service.execute_query(
|
|
75
|
+
endpoint=endpoint,
|
|
76
|
+
variables={
|
|
77
|
+
"clusterID": prepare_input(cluster_id),
|
|
78
|
+
"timeRange": prepare_input(time_range),
|
|
79
|
+
},
|
|
80
|
+
output=build_output_string(ClusterNodeTimeSeries),
|
|
81
|
+
)
|
|
82
|
+
if result.get(endpoint) is not None:
|
|
83
|
+
return ClusterNodeTimeSeries.schema().load(
|
|
84
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
85
|
+
)
|
|
86
|
+
raise GraphQLNoRowsInResultSetError("for query getClusterBacklogAge")
|
|
87
|
+
|
|
48
88
|
def get_clusters_by_ids(self, cluster_ids: List[str]) -> List[Cluster]:
|
|
49
89
|
"""Get clusters by IDs."""
|
|
50
90
|
endpoint = "getClustersByIDs"
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/collector/types.py
RENAMED
|
@@ -336,6 +336,15 @@ class AggregateRateByCollector:
|
|
|
336
336
|
)
|
|
337
337
|
|
|
338
338
|
|
|
339
|
+
@dataclass_json
|
|
340
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
341
|
+
class TimeSeries:
|
|
342
|
+
"""TimeSeries."""
|
|
343
|
+
|
|
344
|
+
time: Optional[str] = field(default=None, metadata=config(field_name="time"))
|
|
345
|
+
value: Optional[str] = field(default=None, metadata=config(field_name="value"))
|
|
346
|
+
|
|
347
|
+
|
|
339
348
|
@dataclass_json
|
|
340
349
|
@dataclass(order=True, eq=True, frozen=True)
|
|
341
350
|
class FlowRate:
|
|
@@ -619,6 +628,24 @@ class NetworkInput:
|
|
|
619
628
|
)
|
|
620
629
|
|
|
621
630
|
|
|
631
|
+
@dataclass_json
|
|
632
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
633
|
+
class ClusterNodeTimeSeries:
|
|
634
|
+
"""ClusterNodeTimeSeries."""
|
|
635
|
+
|
|
636
|
+
cluster_id: Optional[str] = field(
|
|
637
|
+
default=None, metadata=config(field_name="clusterID")
|
|
638
|
+
)
|
|
639
|
+
tenant: Optional[str] = field(default=None, metadata=config(field_name="tenant"))
|
|
640
|
+
node_id: Optional[str] = field(default=None, metadata=config(field_name="nodeId"))
|
|
641
|
+
node_name: Optional[str] = field(
|
|
642
|
+
default=None, metadata=config(field_name="nodeName")
|
|
643
|
+
)
|
|
644
|
+
val: Optional[List[TimeSeries]] = field(
|
|
645
|
+
default=None, metadata=config(field_name="val")
|
|
646
|
+
)
|
|
647
|
+
|
|
648
|
+
|
|
622
649
|
@dataclass_json
|
|
623
650
|
@dataclass(order=True, eq=True, frozen=True)
|
|
624
651
|
class LogLastSeenMetrics:
|
|
@@ -65,6 +65,9 @@ class EndpointGroup:
|
|
|
65
65
|
is_system_generated: Optional[bool] = field(
|
|
66
66
|
default=None, metadata=config(field_name="isSystemGenerated")
|
|
67
67
|
)
|
|
68
|
+
is_default: Optional[bool] = field(
|
|
69
|
+
default=None, metadata=config(field_name="isDefault")
|
|
70
|
+
)
|
|
68
71
|
desired_agent_version: Optional[str] = field(
|
|
69
72
|
default=None, metadata=config(field_name="desiredAgentVersion")
|
|
70
73
|
)
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/events/types.py
RENAMED
|
@@ -78,6 +78,17 @@ class LogicalType(str, Enum):
|
|
|
78
78
|
TIMESTAMP = "Timestamp"
|
|
79
79
|
|
|
80
80
|
|
|
81
|
+
@dataclass_json
|
|
82
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
83
|
+
class BackendTargetingStrategy:
|
|
84
|
+
"""BackendTargetingStrategy."""
|
|
85
|
+
|
|
86
|
+
primary: Optional[int] = field(default=None, metadata=config(field_name="primary"))
|
|
87
|
+
exclude: Optional[List[int]] = field(
|
|
88
|
+
default=None, metadata=config(field_name="exclude")
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
|
|
81
92
|
@dataclass_json
|
|
82
93
|
@dataclass(order=True, eq=True, frozen=True)
|
|
83
94
|
class Event:
|
|
@@ -85,6 +96,9 @@ class Event:
|
|
|
85
96
|
|
|
86
97
|
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
87
98
|
values: Optional[dict] = field(default=None, metadata=config(field_name="values"))
|
|
99
|
+
backends: Optional[List[int]] = field(
|
|
100
|
+
default=None, metadata=config(field_name="backends")
|
|
101
|
+
)
|
|
88
102
|
|
|
89
103
|
|
|
90
104
|
@dataclass_json
|
|
@@ -144,6 +158,27 @@ class EventFetchOptions:
|
|
|
144
158
|
normalize_event_keys: Optional[bool] = field(
|
|
145
159
|
default=None, metadata=config(field_name="normalizeEventKeys")
|
|
146
160
|
)
|
|
161
|
+
backend_strategy: Optional[BackendTargetingStrategy] = field(
|
|
162
|
+
default=None, metadata=config(field_name="backendStrategy")
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@dataclass_json
|
|
167
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
168
|
+
class Field:
|
|
169
|
+
"""Field."""
|
|
170
|
+
|
|
171
|
+
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
172
|
+
searchable: Optional[bool] = field(
|
|
173
|
+
default=None, metadata=config(field_name="searchable")
|
|
174
|
+
)
|
|
175
|
+
debug: Optional[bool] = field(default=None, metadata=config(field_name="debug"))
|
|
176
|
+
base_type: Optional[BaseType] = field(
|
|
177
|
+
default=None, metadata=config(field_name="baseType")
|
|
178
|
+
)
|
|
179
|
+
logical_type: Optional[LogicalType] = field(
|
|
180
|
+
default=None, metadata=config(field_name="logicalType")
|
|
181
|
+
)
|
|
147
182
|
|
|
148
183
|
|
|
149
184
|
@dataclass_json
|
|
@@ -171,28 +206,27 @@ class EventQueryOptions:
|
|
|
171
206
|
default=None, metadata=config(field_name="includeMitreAttackInfoData")
|
|
172
207
|
)
|
|
173
208
|
save_to_cache: Optional[bool] = field(
|
|
174
|
-
default=None,
|
|
209
|
+
default=None,
|
|
210
|
+
metadata=config(
|
|
211
|
+
metadata={
|
|
212
|
+
"deprecated": True,
|
|
213
|
+
"deprecation_reason": "Moving to backendStrategy as an exclusion option",
|
|
214
|
+
},
|
|
215
|
+
field_name="saveToCache",
|
|
216
|
+
),
|
|
175
217
|
)
|
|
176
218
|
search_target: Optional[SearchTarget] = field(
|
|
177
|
-
default=None,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
187
|
-
searchable: Optional[bool] = field(
|
|
188
|
-
default=None, metadata=config(field_name="searchable")
|
|
189
|
-
)
|
|
190
|
-
debug: Optional[bool] = field(default=None, metadata=config(field_name="debug"))
|
|
191
|
-
base_type: Optional[BaseType] = field(
|
|
192
|
-
default=None, metadata=config(field_name="baseType")
|
|
219
|
+
default=None,
|
|
220
|
+
metadata=config(
|
|
221
|
+
metadata={
|
|
222
|
+
"deprecated": True,
|
|
223
|
+
"deprecation_reason": "Moving to backendStrategy",
|
|
224
|
+
},
|
|
225
|
+
field_name="searchTarget",
|
|
226
|
+
),
|
|
193
227
|
)
|
|
194
|
-
|
|
195
|
-
default=None, metadata=config(field_name="
|
|
228
|
+
backend_strategy: Optional[BackendTargetingStrategy] = field(
|
|
229
|
+
default=None, metadata=config(field_name="backendStrategy")
|
|
196
230
|
)
|
|
197
231
|
|
|
198
232
|
|
|
@@ -212,7 +246,19 @@ class EventQueryResult:
|
|
|
212
246
|
default=None, metadata=config(field_name="completed")
|
|
213
247
|
)
|
|
214
248
|
expires: Optional[str] = field(default=None, metadata=config(field_name="expires"))
|
|
215
|
-
backend: Optional[str] = field(
|
|
249
|
+
backend: Optional[str] = field(
|
|
250
|
+
default=None,
|
|
251
|
+
metadata=config(
|
|
252
|
+
metadata={
|
|
253
|
+
"deprecated": True,
|
|
254
|
+
"deprecation_reason": "Moved to backendTarget",
|
|
255
|
+
},
|
|
256
|
+
field_name="backend",
|
|
257
|
+
),
|
|
258
|
+
)
|
|
259
|
+
backend_target: Optional[int] = field(
|
|
260
|
+
default=None, metadata=config(field_name="backendTarget")
|
|
261
|
+
)
|
|
216
262
|
facets: Optional[dict] = field(default=None, metadata=config(field_name="facets"))
|
|
217
263
|
rows: Optional[List[dict]] = field(default=None, metadata=config(field_name="rows"))
|
|
218
264
|
progress: Optional[EventQueryProgress] = field(
|
{taegis-sdk-python-1.0.0rc1 → taegis-sdk-python-1.0.2}/taegis_sdk_python/services/exports/types.py
RENAMED
|
@@ -310,45 +310,6 @@ class SchedulesFilters:
|
|
|
310
310
|
)
|
|
311
311
|
|
|
312
312
|
|
|
313
|
-
@dataclass_json
|
|
314
|
-
@dataclass(order=True, eq=True, frozen=True)
|
|
315
|
-
class ScheduleEditInput:
|
|
316
|
-
"""ScheduleEditInput."""
|
|
317
|
-
|
|
318
|
-
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
319
|
-
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
320
|
-
description: Optional[str] = field(
|
|
321
|
-
default=None, metadata=config(field_name="description")
|
|
322
|
-
)
|
|
323
|
-
filters: Optional[dict] = field(default=None, metadata=config(field_name="filters"))
|
|
324
|
-
interval: Optional[int] = field(
|
|
325
|
-
default=None, metadata=config(field_name="interval")
|
|
326
|
-
)
|
|
327
|
-
day_of_month: Optional[int] = field(
|
|
328
|
-
default=None, metadata=config(field_name="dayOfMonth")
|
|
329
|
-
)
|
|
330
|
-
recipients: Optional[List[str]] = field(
|
|
331
|
-
default=None, metadata=config(field_name="recipients")
|
|
332
|
-
)
|
|
333
|
-
red_ql_query: Optional[str] = field(
|
|
334
|
-
default=None, metadata=config(field_name="redQLQuery")
|
|
335
|
-
)
|
|
336
|
-
generate_csv_export: Optional[bool] = field(
|
|
337
|
-
default=None, metadata=config(field_name="generateCSVExport")
|
|
338
|
-
)
|
|
339
|
-
run_at: Optional[str] = field(default=None, metadata=config(field_name="runAt"))
|
|
340
|
-
share_with_admin_group: Optional[bool] = field(
|
|
341
|
-
default=None, metadata=config(field_name="shareWithAdminGroup")
|
|
342
|
-
)
|
|
343
|
-
locale: Optional[str] = field(default=None, metadata=config(field_name="locale"))
|
|
344
|
-
chart_type: Optional[ReportChartType] = field(
|
|
345
|
-
default=None, metadata=config(field_name="chartType")
|
|
346
|
-
)
|
|
347
|
-
cadence: Optional[Cadence] = field(
|
|
348
|
-
default=None, metadata=config(field_name="cadence")
|
|
349
|
-
)
|
|
350
|
-
|
|
351
|
-
|
|
352
313
|
@dataclass_json
|
|
353
314
|
@dataclass(order=True, eq=True, frozen=True)
|
|
354
315
|
class ReportsFilters:
|
|
@@ -513,6 +474,48 @@ class AllSchedulesInput:
|
|
|
513
474
|
)
|
|
514
475
|
|
|
515
476
|
|
|
477
|
+
@dataclass_json
|
|
478
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
479
|
+
class ScheduleEditInput:
|
|
480
|
+
"""ScheduleEditInput."""
|
|
481
|
+
|
|
482
|
+
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
483
|
+
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
484
|
+
description: Optional[str] = field(
|
|
485
|
+
default=None, metadata=config(field_name="description")
|
|
486
|
+
)
|
|
487
|
+
filters: Optional[dict] = field(default=None, metadata=config(field_name="filters"))
|
|
488
|
+
interval: Optional[int] = field(
|
|
489
|
+
default=None, metadata=config(field_name="interval")
|
|
490
|
+
)
|
|
491
|
+
day_of_month: Optional[int] = field(
|
|
492
|
+
default=None, metadata=config(field_name="dayOfMonth")
|
|
493
|
+
)
|
|
494
|
+
recipients: Optional[List[str]] = field(
|
|
495
|
+
default=None, metadata=config(field_name="recipients")
|
|
496
|
+
)
|
|
497
|
+
red_ql_query: Optional[str] = field(
|
|
498
|
+
default=None, metadata=config(field_name="redQLQuery")
|
|
499
|
+
)
|
|
500
|
+
generate_csv_export: Optional[bool] = field(
|
|
501
|
+
default=None, metadata=config(field_name="generateCSVExport")
|
|
502
|
+
)
|
|
503
|
+
run_at: Optional[str] = field(default=None, metadata=config(field_name="runAt"))
|
|
504
|
+
share_with_admin_group: Optional[bool] = field(
|
|
505
|
+
default=None, metadata=config(field_name="shareWithAdminGroup")
|
|
506
|
+
)
|
|
507
|
+
locale: Optional[str] = field(default=None, metadata=config(field_name="locale"))
|
|
508
|
+
chart_type: Optional[ReportChartType] = field(
|
|
509
|
+
default=None, metadata=config(field_name="chartType")
|
|
510
|
+
)
|
|
511
|
+
cadence: Optional[Cadence] = field(
|
|
512
|
+
default=None, metadata=config(field_name="cadence")
|
|
513
|
+
)
|
|
514
|
+
export_types: Optional[List[ExportType]] = field(
|
|
515
|
+
default=None, metadata=config(field_name="exportTypes")
|
|
516
|
+
)
|
|
517
|
+
|
|
518
|
+
|
|
516
519
|
@dataclass_json
|
|
517
520
|
@dataclass(order=True, eq=True, frozen=True)
|
|
518
521
|
class NewScheduleInput:
|
|
@@ -558,6 +561,9 @@ class NewScheduleInput:
|
|
|
558
561
|
cadence: Optional[Cadence] = field(
|
|
559
562
|
default=None, metadata=config(field_name="cadence")
|
|
560
563
|
)
|
|
564
|
+
export_types: Optional[List[ExportType]] = field(
|
|
565
|
+
default=None, metadata=config(field_name="exportTypes")
|
|
566
|
+
)
|
|
561
567
|
visualizations: Optional[List[VisualizationInput]] = field(
|
|
562
568
|
default=None, metadata=config(field_name="visualizations")
|
|
563
569
|
)
|
|
@@ -620,6 +626,9 @@ class Schedule:
|
|
|
620
626
|
creator: Optional[TDRUser] = field(
|
|
621
627
|
default=None, metadata=config(field_name="creator")
|
|
622
628
|
)
|
|
629
|
+
export_types: Optional[List[ExportType]] = field(
|
|
630
|
+
default=None, metadata=config(field_name="exportTypes")
|
|
631
|
+
)
|
|
623
632
|
visualizations: Optional[List[Visualization]] = field(
|
|
624
633
|
default=None, metadata=config(field_name="visualizations")
|
|
625
634
|
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
""""FastIoc Service."""
|
|
2
|
+
from taegis_sdk_python.service_core import ServiceCore
|
|
3
|
+
from taegis_sdk_python.services.fast_ioc.mutations import TaegisSDKFastIocMutation
|
|
4
|
+
from taegis_sdk_python.services.fast_ioc.queries import TaegisSDKFastIocQuery
|
|
5
|
+
from taegis_sdk_python.services.fast_ioc.subscriptions import (
|
|
6
|
+
TaegisSDKFastIocSubscription,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FastIocService(ServiceCore):
|
|
11
|
+
"""Taegis FastIoc Service."""
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def query(self):
|
|
15
|
+
if not self._queries:
|
|
16
|
+
self._queries = TaegisSDKFastIocQuery(self)
|
|
17
|
+
return self._queries
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def mutation(self):
|
|
21
|
+
if not self._mutations:
|
|
22
|
+
self._mutations = TaegisSDKFastIocMutation(self)
|
|
23
|
+
return self._mutations
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def subscription(self):
|
|
27
|
+
if not self._subscriptions:
|
|
28
|
+
self._subscriptions = TaegisSDKFastIocSubscription(self)
|
|
29
|
+
return self._subscriptions
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""FastIoc Mutation."""
|
|
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.utils import (
|
|
15
|
+
build_output_string,
|
|
16
|
+
parse_union_result,
|
|
17
|
+
prepare_input,
|
|
18
|
+
)
|
|
19
|
+
from taegis_sdk_python.services.fast_ioc.types import *
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
22
|
+
from taegis_sdk_python.services.fast_ioc import FastIocService
|
|
23
|
+
|
|
24
|
+
log = logging.getLogger(__name__)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class TaegisSDKFastIocMutation:
|
|
28
|
+
"""Teagis Fast_ioc Mutation operations."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, service: FastIocService):
|
|
31
|
+
self.service = service
|