taegis-sdk-python 1.6.2__tar.gz → 1.6.4__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.6.2 → taegis_sdk_python-1.6.4}/PKG-INFO +1 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/_version.py +1 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/queries.py +69 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/types.py +17 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/queries.py +2 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/types.py +3 -0
- taegis_sdk_python-1.6.4/taegis_sdk_python/services/datasources/mutations.py +117 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/queries.py +28 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/types.py +61 -22
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/queries.py +24 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/types.py +39 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/mutations.py +5 -5
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/queries.py +1 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/types.py +78 -64
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/queries.py +3 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/types.py +2 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/types.py +44 -73
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/types.py +19 -2
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/queries.py +53 -5
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/types.py +61 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/mutations.py +18 -1
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/types.py +7 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/mutations.py +34 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/queries.py +13 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/types.py +109 -0
- taegis_sdk_python-1.6.2/taegis_sdk_python/services/datasources/mutations.py +0 -54
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/.gitignore +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/LICENSE +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/README.md +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/pyproject.toml +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/_consts.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/authentication.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/federated_search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/federated_search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/events/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/events/search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/federated_search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/search.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/create.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/unfurl.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/config.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/errors.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/logging/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/logging/_default.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/retry/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/retry/_default.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/utils.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/service_core.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/types.py +738 -738
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/mutations.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/queries.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/types.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/subscriptions.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/templates/__init__.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/templates/_jinja2.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/tokens.py +0 -0
- {taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taegis-sdk-python
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.4
|
|
4
4
|
Summary: Taegis Python SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/secureworks/taegis-sdk-python
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/secureworks/taegis-sdk-python/issues
|
{taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/queries.py
RENAMED
|
@@ -420,3 +420,72 @@ class TaegisSDKAssets2Query:
|
|
|
420
420
|
if result.get(endpoint) is not None:
|
|
421
421
|
return AssetsMacAddress.from_dict(result.get(endpoint))
|
|
422
422
|
raise GraphQLNoRowsInResultSetError("for query assetsMacAddress")
|
|
423
|
+
|
|
424
|
+
def network_info_by_host_id(self, host_id: str) -> List[NetworkInfo]:
|
|
425
|
+
""" "Retrieve network information for a host based on a provided host_id."""
|
|
426
|
+
endpoint = "networkInfoByHostID"
|
|
427
|
+
|
|
428
|
+
result = self.service.execute_query(
|
|
429
|
+
endpoint=endpoint,
|
|
430
|
+
variables={
|
|
431
|
+
"hostId": prepare_input(host_id),
|
|
432
|
+
},
|
|
433
|
+
output=build_output_string(NetworkInfo),
|
|
434
|
+
)
|
|
435
|
+
if result.get(endpoint) is not None:
|
|
436
|
+
return NetworkInfo.schema().load(
|
|
437
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
438
|
+
)
|
|
439
|
+
raise GraphQLNoRowsInResultSetError("for query networkInfoByHostID")
|
|
440
|
+
|
|
441
|
+
def network_info_by_hostname(
|
|
442
|
+
self,
|
|
443
|
+
event_time: str,
|
|
444
|
+
host_name: str,
|
|
445
|
+
exact_match_count: int,
|
|
446
|
+
endpoint_types: Union[EndpointTypeV2, TaegisEnum],
|
|
447
|
+
) -> List[NetworkInfo]:
|
|
448
|
+
""" "Retrieve network information for a host based on a provided hostname."""
|
|
449
|
+
endpoint = "networkInfoByHostname"
|
|
450
|
+
|
|
451
|
+
result = self.service.execute_query(
|
|
452
|
+
endpoint=endpoint,
|
|
453
|
+
variables={
|
|
454
|
+
"eventTime": prepare_input(event_time),
|
|
455
|
+
"hostName": prepare_input(host_name),
|
|
456
|
+
"exactMatchCount": prepare_input(exact_match_count),
|
|
457
|
+
"endpointTypes": prepare_input(endpoint_types),
|
|
458
|
+
},
|
|
459
|
+
output=build_output_string(NetworkInfo),
|
|
460
|
+
)
|
|
461
|
+
if result.get(endpoint) is not None:
|
|
462
|
+
return NetworkInfo.schema().load(
|
|
463
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
464
|
+
)
|
|
465
|
+
raise GraphQLNoRowsInResultSetError("for query networkInfoByHostname")
|
|
466
|
+
|
|
467
|
+
def network_info_by_ip_address(
|
|
468
|
+
self,
|
|
469
|
+
event_time: str,
|
|
470
|
+
ip_address: str,
|
|
471
|
+
exact_match_count: int,
|
|
472
|
+
endpoint_types: Union[EndpointTypeV2, TaegisEnum],
|
|
473
|
+
) -> List[NetworkInfo]:
|
|
474
|
+
""" "Retrieve network information for a host based on a provided ip address."""
|
|
475
|
+
endpoint = "networkInfoByIpAddress"
|
|
476
|
+
|
|
477
|
+
result = self.service.execute_query(
|
|
478
|
+
endpoint=endpoint,
|
|
479
|
+
variables={
|
|
480
|
+
"eventTime": prepare_input(event_time),
|
|
481
|
+
"ipAddress": prepare_input(ip_address),
|
|
482
|
+
"exactMatchCount": prepare_input(exact_match_count),
|
|
483
|
+
"endpointTypes": prepare_input(endpoint_types),
|
|
484
|
+
},
|
|
485
|
+
output=build_output_string(NetworkInfo),
|
|
486
|
+
)
|
|
487
|
+
if result.get(endpoint) is not None:
|
|
488
|
+
return NetworkInfo.schema().load(
|
|
489
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
490
|
+
)
|
|
491
|
+
raise GraphQLNoRowsInResultSetError("for query networkInfoByIpAddress")
|
{taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/types.py
RENAMED
|
@@ -481,6 +481,23 @@ class PageInfoV2:
|
|
|
481
481
|
)
|
|
482
482
|
|
|
483
483
|
|
|
484
|
+
@dataclass_json
|
|
485
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
486
|
+
class NetworkInfo:
|
|
487
|
+
"""NetworkInfo."""
|
|
488
|
+
|
|
489
|
+
host_id: Optional[str] = field(default=None, metadata=config(field_name="hostId"))
|
|
490
|
+
host_name: Optional[str] = field(
|
|
491
|
+
default=None, metadata=config(field_name="hostName")
|
|
492
|
+
)
|
|
493
|
+
ip_addresses: Optional[List[str]] = field(
|
|
494
|
+
default=None, metadata=config(field_name="ipAddresses")
|
|
495
|
+
)
|
|
496
|
+
ethernet_addresses: Optional[List[str]] = field(
|
|
497
|
+
default=None, metadata=config(field_name="ethernetAddresses")
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
|
|
484
501
|
@dataclass_json
|
|
485
502
|
@dataclass(order=True, eq=True, frozen=True)
|
|
486
503
|
class AssetHostname:
|
{taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/queries.py
RENAMED
|
@@ -262,7 +262,7 @@ class TaegisSDKAuthzQuery:
|
|
|
262
262
|
raise GraphQLNoRowsInResultSetError("for query authzCanSubjectAssumeAllTenants")
|
|
263
263
|
|
|
264
264
|
def authz_can_subject_assign_role(
|
|
265
|
-
self, id_: str
|
|
265
|
+
self, id_: str, target_subject_id: Optional[str] = None
|
|
266
266
|
) -> AuthzCanSubjectAssignRoleResponse:
|
|
267
267
|
"""Check if the subject can assign the input role."""
|
|
268
268
|
endpoint = "authzCanSubjectAssignRole"
|
|
@@ -271,6 +271,7 @@ class TaegisSDKAuthzQuery:
|
|
|
271
271
|
endpoint=endpoint,
|
|
272
272
|
variables={
|
|
273
273
|
"id": prepare_input(id_),
|
|
274
|
+
"targetSubjectID": prepare_input(target_subject_id),
|
|
274
275
|
},
|
|
275
276
|
output=build_output_string(AuthzCanSubjectAssignRoleResponse),
|
|
276
277
|
)
|
{taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/types.py
RENAMED
|
@@ -404,6 +404,9 @@ class AuthzCanSubjectAssignRoleResponse:
|
|
|
404
404
|
subject_can_assign: Optional[bool] = field(
|
|
405
405
|
default=None, metadata=config(field_name="subjectCanAssign")
|
|
406
406
|
)
|
|
407
|
+
subject_can_deactivate: Optional[bool] = field(
|
|
408
|
+
default=None, metadata=config(field_name="subjectCanDeactivate")
|
|
409
|
+
)
|
|
407
410
|
role: Optional[AuthzRole] = field(default=None, metadata=config(field_name="role"))
|
|
408
411
|
absent_permissions: Optional[List[AuthzPermission]] = field(
|
|
409
412
|
default=None, metadata=config(field_name="absentPermissions")
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""Datasources Mutation."""
|
|
2
|
+
|
|
3
|
+
# pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code, wildcard-import, unused-wildcard-import, cyclic-import
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Autogenerated
|
|
7
|
+
# DO NOT MODIFY
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import logging
|
|
12
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
|
|
13
|
+
|
|
14
|
+
from taegis_sdk_python import GraphQLNoRowsInResultSetError
|
|
15
|
+
from taegis_sdk_python._consts import TaegisEnum
|
|
16
|
+
from taegis_sdk_python.services.datasources.types import *
|
|
17
|
+
from taegis_sdk_python.utils import (
|
|
18
|
+
build_output_string,
|
|
19
|
+
parse_union_result,
|
|
20
|
+
prepare_input,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
24
|
+
from taegis_sdk_python.services.datasources import DatasourcesService
|
|
25
|
+
|
|
26
|
+
log = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class TaegisSDKDatasourcesMutation:
|
|
30
|
+
"""Taegis Datasources Mutation operations."""
|
|
31
|
+
|
|
32
|
+
def __init__(self, service: DatasourcesService):
|
|
33
|
+
self.service = service
|
|
34
|
+
|
|
35
|
+
def delete_data_source_assets(
|
|
36
|
+
self, delete_asset_input: List[DeleteAssetInput]
|
|
37
|
+
) -> List[DeletedAsset]:
|
|
38
|
+
"""Executes a delete operation on all included data sources for a specified tenant. Returns an array of
|
|
39
|
+
deleted assets with metadata. Authorization permission is required with delete access to the collector
|
|
40
|
+
object.."""
|
|
41
|
+
endpoint = "deleteDataSourceAssets"
|
|
42
|
+
|
|
43
|
+
result = self.service.execute_mutation(
|
|
44
|
+
endpoint=endpoint,
|
|
45
|
+
variables={
|
|
46
|
+
"deleteAssetInput": prepare_input(delete_asset_input),
|
|
47
|
+
},
|
|
48
|
+
output=build_output_string(DeletedAsset),
|
|
49
|
+
)
|
|
50
|
+
if result.get(endpoint) is not None:
|
|
51
|
+
return DeletedAsset.schema().load(
|
|
52
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
53
|
+
)
|
|
54
|
+
raise GraphQLNoRowsInResultSetError("for mutation deleteDataSourceAssets")
|
|
55
|
+
|
|
56
|
+
def delete_data_source_tag(self, tag_id: str) -> bool:
|
|
57
|
+
"""Deleted a tag by its ID. Returns true if the tag was successfully deleted.."""
|
|
58
|
+
endpoint = "deleteDataSourceTag"
|
|
59
|
+
|
|
60
|
+
result = self.service.execute_mutation(
|
|
61
|
+
endpoint=endpoint,
|
|
62
|
+
variables={
|
|
63
|
+
"tagId": prepare_input(tag_id),
|
|
64
|
+
},
|
|
65
|
+
output="",
|
|
66
|
+
)
|
|
67
|
+
if result.get(endpoint) is not None:
|
|
68
|
+
return result.get(endpoint)
|
|
69
|
+
raise GraphQLNoRowsInResultSetError("for mutation deleteDataSourceTag")
|
|
70
|
+
|
|
71
|
+
def detach_data_source_tag(self, input_: DataSourceTagOperationInput) -> List[str]:
|
|
72
|
+
"""Detaches an existing tag from datasource(s). Returns the assetIDs that were detached from the tag.."""
|
|
73
|
+
endpoint = "detachDataSourceTag"
|
|
74
|
+
|
|
75
|
+
result = self.service.execute_mutation(
|
|
76
|
+
endpoint=endpoint,
|
|
77
|
+
variables={
|
|
78
|
+
"input": prepare_input(input_),
|
|
79
|
+
},
|
|
80
|
+
output="",
|
|
81
|
+
)
|
|
82
|
+
if result.get(endpoint) is not None:
|
|
83
|
+
return result.get(endpoint)
|
|
84
|
+
raise GraphQLNoRowsInResultSetError("for mutation detachDataSourceTag")
|
|
85
|
+
|
|
86
|
+
def create_data_source_tag(self, input_: CreateDataSourceTagInput) -> DataSourceTag:
|
|
87
|
+
"""Creates a new tag and associates it with existing datasource(s). Returns the created tag. This API
|
|
88
|
+
allows a maximum of 100 tags to be created for a given tenant.."""
|
|
89
|
+
endpoint = "createDataSourceTag"
|
|
90
|
+
|
|
91
|
+
result = self.service.execute_mutation(
|
|
92
|
+
endpoint=endpoint,
|
|
93
|
+
variables={
|
|
94
|
+
"input": prepare_input(input_),
|
|
95
|
+
},
|
|
96
|
+
output=build_output_string(DataSourceTag),
|
|
97
|
+
)
|
|
98
|
+
if result.get(endpoint) is not None:
|
|
99
|
+
return DataSourceTag.from_dict(result.get(endpoint))
|
|
100
|
+
raise GraphQLNoRowsInResultSetError("for mutation createDataSourceTag")
|
|
101
|
+
|
|
102
|
+
def attach_data_source_tag(self, input_: DataSourceTagOperationInput) -> List[str]:
|
|
103
|
+
"""Attaches or associates an existing tag to datasource(s). Returns the assetIDs attached to the tag.
|
|
104
|
+
A maximum of 100 assetIDs can be associated in a single operation. A single asset can have up to 16 tags attached to it..
|
|
105
|
+
"""
|
|
106
|
+
endpoint = "attachDataSourceTag"
|
|
107
|
+
|
|
108
|
+
result = self.service.execute_mutation(
|
|
109
|
+
endpoint=endpoint,
|
|
110
|
+
variables={
|
|
111
|
+
"input": prepare_input(input_),
|
|
112
|
+
},
|
|
113
|
+
output="",
|
|
114
|
+
)
|
|
115
|
+
if result.get(endpoint) is not None:
|
|
116
|
+
return result.get(endpoint)
|
|
117
|
+
raise GraphQLNoRowsInResultSetError("for mutation attachDataSourceTag")
|
|
@@ -124,3 +124,31 @@ class TaegisSDKDatasourcesQuery:
|
|
|
124
124
|
if result.get(endpoint) is not None:
|
|
125
125
|
return LastSeenAssetsQueryResult.from_dict(result.get(endpoint))
|
|
126
126
|
raise GraphQLNoRowsInResultSetError("for query dataSourceLastSeenAssetsQuery")
|
|
127
|
+
|
|
128
|
+
def get_data_source_tags(self) -> List[DataSourceTag]:
|
|
129
|
+
"""Fetches all tags associated with a given tenant.."""
|
|
130
|
+
endpoint = "getDataSourceTags"
|
|
131
|
+
|
|
132
|
+
result = self.service.execute_query(
|
|
133
|
+
endpoint=endpoint, variables={}, output=build_output_string(DataSourceTag)
|
|
134
|
+
)
|
|
135
|
+
if result.get(endpoint) is not None:
|
|
136
|
+
return DataSourceTag.schema().load(
|
|
137
|
+
[r or {} for r in result.get(endpoint)], many=True
|
|
138
|
+
)
|
|
139
|
+
raise GraphQLNoRowsInResultSetError("for query getDataSourceTags")
|
|
140
|
+
|
|
141
|
+
def get_data_source_tag(self, tag_id: str) -> DataSourceTag:
|
|
142
|
+
"""Fetches a specific tag by its ID.."""
|
|
143
|
+
endpoint = "getDataSourceTag"
|
|
144
|
+
|
|
145
|
+
result = self.service.execute_query(
|
|
146
|
+
endpoint=endpoint,
|
|
147
|
+
variables={
|
|
148
|
+
"tagId": prepare_input(tag_id),
|
|
149
|
+
},
|
|
150
|
+
output=build_output_string(DataSourceTag),
|
|
151
|
+
)
|
|
152
|
+
if result.get(endpoint) is not None:
|
|
153
|
+
return DataSourceTag.from_dict(result.get(endpoint))
|
|
154
|
+
raise GraphQLNoRowsInResultSetError("for query getDataSourceTag")
|
{taegis_sdk_python-1.6.2 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/types.py
RENAMED
|
@@ -26,6 +26,7 @@ class AuthzAction(str, Enum):
|
|
|
26
26
|
|
|
27
27
|
READ = "READ"
|
|
28
28
|
DELETE = "DELETE"
|
|
29
|
+
CREATE = "CREATE"
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
class HealthState(str, Enum):
|
|
@@ -160,6 +161,9 @@ class DataSourcesWhereInput:
|
|
|
160
161
|
collector_id: Optional[List[str]] = field(
|
|
161
162
|
default=None, metadata=config(field_name="collectorId")
|
|
162
163
|
)
|
|
164
|
+
tag_id: Optional[List[str]] = field(
|
|
165
|
+
default=None, metadata=config(field_name="tagId")
|
|
166
|
+
)
|
|
163
167
|
|
|
164
168
|
|
|
165
169
|
@dataclass_json
|
|
@@ -189,11 +193,61 @@ class ClusterIdentity:
|
|
|
189
193
|
name: Optional[str] = field(default=None, metadata=config(field_name="name"))
|
|
190
194
|
|
|
191
195
|
|
|
196
|
+
@dataclass_json
|
|
197
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
198
|
+
class DataSourceTag:
|
|
199
|
+
"""DataSourceTag."""
|
|
200
|
+
|
|
201
|
+
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
202
|
+
tenant: Optional[str] = field(default=None, metadata=config(field_name="tenant"))
|
|
203
|
+
key: Optional[str] = field(default=None, metadata=config(field_name="key"))
|
|
204
|
+
value: Optional[str] = field(default=None, metadata=config(field_name="value"))
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
@dataclass_json
|
|
208
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
209
|
+
class CreateDataSourceTagInput:
|
|
210
|
+
"""CreateDataSourceTagInput."""
|
|
211
|
+
|
|
212
|
+
key: Optional[str] = field(default=None, metadata=config(field_name="key"))
|
|
213
|
+
value: Optional[str] = field(default=None, metadata=config(field_name="value"))
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
@dataclass_json
|
|
217
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
218
|
+
class DataSourceTagOperationInput:
|
|
219
|
+
"""DataSourceTagOperationInput."""
|
|
220
|
+
|
|
221
|
+
tag_id: Optional[str] = field(default=None, metadata=config(field_name="tagId"))
|
|
222
|
+
asset_ids: Optional[List[str]] = field(
|
|
223
|
+
default=None, metadata=config(field_name="assetIds")
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
@dataclass_json
|
|
228
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
229
|
+
class DataSourceAssetsFilter:
|
|
230
|
+
"""DataSourceAssetsFilter."""
|
|
231
|
+
|
|
232
|
+
status: Optional[List[Union[HealthState, TaegisEnum]]] = field(
|
|
233
|
+
default=None,
|
|
234
|
+
metadata=config(
|
|
235
|
+
encoder=encode_enum,
|
|
236
|
+
decoder=lambda x: decode_enum(HealthState, x),
|
|
237
|
+
field_name="status",
|
|
238
|
+
),
|
|
239
|
+
)
|
|
240
|
+
where: Optional[DataSourcesWhereInput] = field(
|
|
241
|
+
default=None, metadata=config(field_name="where")
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
|
|
192
245
|
@dataclass_json
|
|
193
246
|
@dataclass(order=True, eq=True, frozen=True)
|
|
194
247
|
class LastSeenAsset:
|
|
195
248
|
"""LastSeenAsset."""
|
|
196
249
|
|
|
250
|
+
asset_id: Optional[str] = field(default=None, metadata=config(field_name="assetId"))
|
|
197
251
|
source_id: Optional[str] = field(
|
|
198
252
|
default=None, metadata=config(field_name="sourceId")
|
|
199
253
|
)
|
|
@@ -221,24 +275,15 @@ class LastSeenAsset:
|
|
|
221
275
|
collector: Optional[ClusterIdentity] = field(
|
|
222
276
|
default=None, metadata=config(field_name="collector")
|
|
223
277
|
)
|
|
278
|
+
tags: Optional[List[DataSourceTag]] = field(
|
|
279
|
+
default=None, metadata=config(field_name="tags")
|
|
280
|
+
)
|
|
224
281
|
|
|
225
282
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
status: Optional[List[Union[HealthState, TaegisEnum]]] = field(
|
|
232
|
-
default=None,
|
|
233
|
-
metadata=config(
|
|
234
|
-
encoder=encode_enum,
|
|
235
|
-
decoder=lambda x: decode_enum(HealthState, x),
|
|
236
|
-
field_name="status",
|
|
237
|
-
),
|
|
238
|
-
)
|
|
239
|
-
where: Optional[DataSourcesWhereInput] = field(
|
|
240
|
-
default=None, metadata=config(field_name="where")
|
|
241
|
-
)
|
|
283
|
+
FilterValueResponse = Union[
|
|
284
|
+
FilterValue,
|
|
285
|
+
ClusterIdentity,
|
|
286
|
+
]
|
|
242
287
|
|
|
243
288
|
|
|
244
289
|
@dataclass_json
|
|
@@ -273,12 +318,6 @@ class LastSeenAssetsQueryResult:
|
|
|
273
318
|
)
|
|
274
319
|
|
|
275
320
|
|
|
276
|
-
FilterValueResponse = Union[
|
|
277
|
-
FilterValue,
|
|
278
|
-
ClusterIdentity,
|
|
279
|
-
]
|
|
280
|
-
|
|
281
|
-
|
|
282
321
|
@dataclass_json
|
|
283
322
|
@dataclass(order=True, eq=True, frozen=True)
|
|
284
323
|
class FilterValues:
|
|
@@ -204,6 +204,30 @@ class TaegisSDKEntityContextQuery:
|
|
|
204
204
|
)
|
|
205
205
|
raise GraphQLNoRowsInResultSetError("for query entityContextAssociatedEntities")
|
|
206
206
|
|
|
207
|
+
def entity_context_associated_entity_types(
|
|
208
|
+
self,
|
|
209
|
+
entry_point: EntityContextSingleEntryPoint,
|
|
210
|
+
source: Optional[EntityContextSourceInput] = None,
|
|
211
|
+
) -> EntityContextAssociatedEntityTypesResponse:
|
|
212
|
+
"""None."""
|
|
213
|
+
endpoint = "entityContextAssociatedEntityTypes"
|
|
214
|
+
|
|
215
|
+
result = self.service.execute_query(
|
|
216
|
+
endpoint=endpoint,
|
|
217
|
+
variables={
|
|
218
|
+
"entryPoint": prepare_input(entry_point),
|
|
219
|
+
"source": prepare_input(source),
|
|
220
|
+
},
|
|
221
|
+
output=build_output_string(EntityContextAssociatedEntityTypesResponse),
|
|
222
|
+
)
|
|
223
|
+
if result.get(endpoint) is not None:
|
|
224
|
+
return EntityContextAssociatedEntityTypesResponse.from_dict(
|
|
225
|
+
result.get(endpoint)
|
|
226
|
+
)
|
|
227
|
+
raise GraphQLNoRowsInResultSetError(
|
|
228
|
+
"for query entityContextAssociatedEntityTypes"
|
|
229
|
+
)
|
|
230
|
+
|
|
207
231
|
def entity_context_pivot_ql(
|
|
208
232
|
self,
|
|
209
233
|
entry_point: EntityContextEntryPoint,
|
|
@@ -197,6 +197,15 @@ class EntityContextPageInput:
|
|
|
197
197
|
)
|
|
198
198
|
|
|
199
199
|
|
|
200
|
+
@dataclass_json
|
|
201
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
202
|
+
class EntityContextTypeCounts:
|
|
203
|
+
"""EntityContextTypeCounts."""
|
|
204
|
+
|
|
205
|
+
type: Optional[str] = field(default=None, metadata=config(field_name="type"))
|
|
206
|
+
count: Optional[int] = field(default=None, metadata=config(field_name="count"))
|
|
207
|
+
|
|
208
|
+
|
|
200
209
|
@dataclass_json
|
|
201
210
|
@dataclass(order=True, eq=True, frozen=True)
|
|
202
211
|
class EntityContextPageInfo:
|
|
@@ -392,6 +401,22 @@ class EntityContextWhoIsContact:
|
|
|
392
401
|
)
|
|
393
402
|
|
|
394
403
|
|
|
404
|
+
@dataclass_json
|
|
405
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
406
|
+
class EntityContextSingleEntryPoint:
|
|
407
|
+
"""EntityContextSingleEntryPoint."""
|
|
408
|
+
|
|
409
|
+
id: Optional[str] = field(default=None, metadata=config(field_name="id"))
|
|
410
|
+
type: Optional[Union[EntityContextEntryPointType, TaegisEnum]] = field(
|
|
411
|
+
default=None,
|
|
412
|
+
metadata=config(
|
|
413
|
+
encoder=encode_enum,
|
|
414
|
+
decoder=lambda x: decode_enum(EntityContextEntryPointType, x),
|
|
415
|
+
field_name="type",
|
|
416
|
+
),
|
|
417
|
+
)
|
|
418
|
+
|
|
419
|
+
|
|
395
420
|
@dataclass_json
|
|
396
421
|
@dataclass(order=True, eq=True, frozen=True)
|
|
397
422
|
class EntityContextOrigin:
|
|
@@ -461,6 +486,20 @@ class EntityContextRelatedResources:
|
|
|
461
486
|
)
|
|
462
487
|
|
|
463
488
|
|
|
489
|
+
@dataclass_json
|
|
490
|
+
@dataclass(order=True, eq=True, frozen=True)
|
|
491
|
+
class EntityContextAssociatedEntityTypesResponse:
|
|
492
|
+
"""EntityContextAssociatedEntityTypesResponse."""
|
|
493
|
+
|
|
494
|
+
total_count: Optional[int] = field(
|
|
495
|
+
default=None, metadata=config(field_name="totalCount")
|
|
496
|
+
)
|
|
497
|
+
error: Optional[str] = field(default=None, metadata=config(field_name="error"))
|
|
498
|
+
types: Optional[List[EntityContextTypeCounts]] = field(
|
|
499
|
+
default=None, metadata=config(field_name="types")
|
|
500
|
+
)
|
|
501
|
+
|
|
502
|
+
|
|
464
503
|
@dataclass_json
|
|
465
504
|
@dataclass(order=True, eq=True, frozen=True)
|
|
466
505
|
class EntityContextPropertyQuery:
|
|
@@ -72,7 +72,7 @@ class TaegisSDKInvestigations2Mutation:
|
|
|
72
72
|
The response will include the evidence that the service will attempt to add to the case.
|
|
73
73
|
|
|
74
74
|
Adding evidence to cases is an asynchronous operation.
|
|
75
|
-
It will typically finish pretty quickly, but added
|
|
75
|
+
It will typically finish pretty quickly, but added detections/events will may not show up in the returned case until the async job is fully complete.
|
|
76
76
|
The processing status, that is found on the case type will reflect the state of the processing job.
|
|
77
77
|
Once the status is set to 'SUCCESS' the background job is complete and requesting the case will return the related evidence.
|
|
78
78
|
|
|
@@ -98,7 +98,7 @@ class TaegisSDKInvestigations2Mutation:
|
|
|
98
98
|
The response will include the evidence that the service will attempt to remove from the case.
|
|
99
99
|
|
|
100
100
|
Removing evidence from cases is an asynchronous operation.
|
|
101
|
-
It will typically finish pretty quickly, but removed
|
|
101
|
+
It will typically finish pretty quickly, but removed detections/events will can remain attached to the case until the async job is fully complete.
|
|
102
102
|
The processing status, that is found on the case type will reflect the state of the processing job.
|
|
103
103
|
Once the status is set to 'SUCCESS' the background job is complete and requesting the case will only return evidence that was not removed.
|
|
104
104
|
|
|
@@ -119,14 +119,14 @@ class TaegisSDKInvestigations2Mutation:
|
|
|
119
119
|
|
|
120
120
|
def close_case(self, input_: CloseCaseInput) -> Case:
|
|
121
121
|
"""closeCase will close an existing case.
|
|
122
|
-
If the case has
|
|
122
|
+
If the case has detections attached to it, the detectionsResolutionStatus field is required and detections will be resolved based on the provided status.
|
|
123
123
|
Once a case is closed, it can no longer be edited or have evidence added to it while in the closed state, it can only be archived.
|
|
124
124
|
A closed case can be reopened if changes are needed after closing.
|
|
125
125
|
|
|
126
126
|
Resolving evidence in a case is an asynchronous operation.
|
|
127
|
-
It will typically finish pretty quickly, but resolving
|
|
127
|
+
It will typically finish pretty quickly, but resolving detections will may not reflect the updated status until the async job is fully complete.
|
|
128
128
|
The processing status, that is found on the case type will reflect the state of the processing job.
|
|
129
|
-
Once the status is set to 'SUCCESS' the background job is complete and the
|
|
129
|
+
Once the status is set to 'SUCCESS' the background job is complete and the detections will have been updated.
|
|
130
130
|
|
|
131
131
|
Adding, removing or updating evidence (closing a case) while other jobs are processing for a given case will cause the jobs to queue.
|
|
132
132
|
Jobs will be worked through in the order they were received.."""
|
|
@@ -157,7 +157,7 @@ class TaegisSDKInvestigations2Query:
|
|
|
157
157
|
raise GraphQLNoRowsInResultSetError("for query exportCaseResources")
|
|
158
158
|
|
|
159
159
|
def case_timeline(self, arguments: CaseTimelineArguments) -> CaseTimeline:
|
|
160
|
-
"""caseTimeline returns a case timeline detailing the order of
|
|
160
|
+
"""caseTimeline returns a case timeline detailing the order of detections, events and other actions taken in relation to a case.."""
|
|
161
161
|
endpoint = "caseTimeline"
|
|
162
162
|
|
|
163
163
|
result = self.service.execute_query(
|