taegis-sdk-python 1.6.3__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.
Files changed (294) hide show
  1. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/PKG-INFO +1 -1
  2. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/_version.py +1 -1
  3. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/queries.py +69 -0
  4. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/types.py +17 -0
  5. taegis_sdk_python-1.6.4/taegis_sdk_python/services/datasources/mutations.py +117 -0
  6. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/queries.py +28 -0
  7. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/types.py +61 -22
  8. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/queries.py +24 -0
  9. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/types.py +39 -0
  10. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/queries.py +53 -5
  11. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/types.py +61 -0
  12. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/mutations.py +18 -1
  13. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/types.py +4 -0
  14. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/mutations.py +34 -0
  15. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/queries.py +13 -0
  16. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/types.py +109 -0
  17. taegis_sdk_python-1.6.3/taegis_sdk_python/services/datasources/mutations.py +0 -54
  18. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/.gitignore +0 -0
  19. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/LICENSE +0 -0
  20. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/README.md +0 -0
  21. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/pyproject.toml +0 -0
  22. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/__init__.py +0 -0
  23. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/_consts.py +0 -0
  24. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/authentication.py +0 -0
  25. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/__init__.py +0 -0
  26. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/__init__.py +0 -0
  27. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/federated_search.py +0 -0
  28. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/alerts/search.py +0 -0
  29. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/__init__.py +0 -0
  30. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/federated_search.py +0 -0
  31. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/cases/search.py +0 -0
  32. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/events/__init__.py +0 -0
  33. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/events/search.py +0 -0
  34. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/__init__.py +0 -0
  35. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/federated_search.py +0 -0
  36. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/investigations/search.py +0 -0
  37. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/__init__.py +0 -0
  38. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/create.py +0 -0
  39. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/commons/sharelinks/unfurl.py +0 -0
  40. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/config.py +0 -0
  41. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/errors.py +0 -0
  42. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/__init__.py +0 -0
  43. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/logging/__init__.py +0 -0
  44. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/logging/_default.py +0 -0
  45. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/retry/__init__.py +0 -0
  46. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/retry/_default.py +0 -0
  47. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/middlewares/utils.py +0 -0
  48. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/service_core.py +0 -0
  49. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/__init__.py +0 -0
  50. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/__init__.py +0 -0
  51. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/mutations.py +0 -0
  52. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/queries.py +0 -0
  53. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
  54. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/access_points/types.py +0 -0
  55. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/__init__.py +0 -0
  56. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/mutations.py +0 -0
  57. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/queries.py +0 -0
  58. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
  59. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/agent/types.py +0 -0
  60. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/__init__.py +0 -0
  61. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/mutations.py +0 -0
  62. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/queries.py +0 -0
  63. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
  64. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts/types.py +738 -738
  65. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/__init__.py +0 -0
  66. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/mutations.py +0 -0
  67. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/queries.py +0 -0
  68. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/subscriptions.py +0 -0
  69. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/alerts_history/types.py +0 -0
  70. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/__init__.py +0 -0
  71. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/mutations.py +0 -0
  72. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/queries.py +0 -0
  73. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
  74. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets/types.py +0 -0
  75. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/__init__.py +0 -0
  76. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/mutations.py +0 -0
  77. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
  78. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/__init__.py +0 -0
  79. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/mutations.py +0 -0
  80. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/queries.py +0 -0
  81. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
  82. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/audits/types.py +0 -0
  83. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/__init__.py +0 -0
  84. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/mutations.py +0 -0
  85. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/queries.py +0 -0
  86. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/subscriptions.py +0 -0
  87. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/authz/types.py +0 -0
  88. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/__init__.py +0 -0
  89. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/mutations.py +0 -0
  90. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/queries.py +0 -0
  91. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/subscriptions.py +0 -0
  92. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/byoti/types.py +0 -0
  93. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/__init__.py +0 -0
  94. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/mutations.py +0 -0
  95. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/queries.py +0 -0
  96. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
  97. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/clients/types.py +0 -0
  98. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/__init__.py +0 -0
  99. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/mutations.py +0 -0
  100. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/queries.py +0 -0
  101. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
  102. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/collector/types.py +0 -0
  103. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/__init__.py +0 -0
  104. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/mutations.py +0 -0
  105. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/queries.py +0 -0
  106. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
  107. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/comments/types.py +0 -0
  108. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/__init__.py +0 -0
  109. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/mutations.py +0 -0
  110. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/queries.py +0 -0
  111. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/subscriptions.py +0 -0
  112. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/contracted_endpoint/types.py +0 -0
  113. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/__init__.py +0 -0
  114. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/mutations.py +0 -0
  115. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/queries.py +0 -0
  116. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/subscriptions.py +0 -0
  117. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/cql_metadata/types.py +0 -0
  118. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/__init__.py +0 -0
  119. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/datasources/subscriptions.py +0 -0
  120. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
  121. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
  122. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
  123. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
  124. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/detector_registry/types.py +0 -0
  125. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
  126. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
  127. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
  128. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
  129. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
  130. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
  131. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
  132. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
  133. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
  134. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
  135. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/__init__.py +0 -0
  136. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/mutations.py +0 -0
  137. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/entity_context/subscriptions.py +0 -0
  138. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/__init__.py +0 -0
  139. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/mutations.py +0 -0
  140. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/queries.py +0 -0
  141. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
  142. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/event_search/types.py +0 -0
  143. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/__init__.py +0 -0
  144. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/mutations.py +0 -0
  145. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/queries.py +0 -0
  146. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/subscriptions.py +0 -0
  147. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/events/types.py +0 -0
  148. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/__init__.py +0 -0
  149. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/mutations.py +0 -0
  150. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/queries.py +0 -0
  151. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
  152. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/exports/types.py +0 -0
  153. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/__init__.py +0 -0
  154. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/mutations.py +0 -0
  155. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/queries.py +0 -0
  156. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/subscriptions.py +0 -0
  157. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/fast_ioc/types.py +0 -0
  158. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/__init__.py +0 -0
  159. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/mutations.py +0 -0
  160. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/queries.py +0 -0
  161. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/subscriptions.py +0 -0
  162. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/file_info/types.py +0 -0
  163. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/__init__.py +0 -0
  164. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/mutations.py +0 -0
  165. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/queries.py +0 -0
  166. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/subscriptions.py +0 -0
  167. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/ingest_stats/types.py +0 -0
  168. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/__init__.py +0 -0
  169. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/mutations.py +0 -0
  170. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/queries.py +0 -0
  171. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
  172. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations/types.py +0 -0
  173. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
  174. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/mutations.py +0 -0
  175. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/queries.py +0 -0
  176. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
  177. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/investigations2/types.py +0 -0
  178. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/__init__.py +0 -0
  179. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/mutations.py +0 -0
  180. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/queries.py +0 -0
  181. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/subscriptions.py +0 -0
  182. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/isensor/types.py +0 -0
  183. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
  184. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
  185. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
  186. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
  187. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
  188. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/__init__.py +0 -0
  189. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/mutations.py +0 -0
  190. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/queries.py +0 -0
  191. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/subscriptions.py +0 -0
  192. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_context/types.py +0 -0
  193. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/__init__.py +0 -0
  194. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/mutations.py +0 -0
  195. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/queries.py +0 -0
  196. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/subscriptions.py +0 -0
  197. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/multi_tenant_ioc/types.py +0 -0
  198. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/__init__.py +0 -0
  199. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/mutations.py +0 -0
  200. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/queries.py +0 -0
  201. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/subscriptions.py +0 -0
  202. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/nl_search/types.py +0 -0
  203. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
  204. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
  205. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/queries.py +0 -0
  206. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
  207. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notebooks/types.py +0 -0
  208. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/__init__.py +0 -0
  209. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/mutations.py +0 -0
  210. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/queries.py +0 -0
  211. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
  212. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/notifications/types.py +0 -0
  213. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/__init__.py +0 -0
  214. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/mutations.py +0 -0
  215. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/queries.py +0 -0
  216. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
  217. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/preferences/types.py +0 -0
  218. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/__init__.py +0 -0
  219. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/mutations.py +0 -0
  220. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/queries.py +0 -0
  221. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/subscriptions.py +0 -0
  222. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/process_trees/types.py +0 -0
  223. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/__init__.py +0 -0
  224. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/mutations.py +0 -0
  225. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/queries.py +0 -0
  226. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/subscriptions.py +0 -0
  227. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/queries/types.py +0 -0
  228. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
  229. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
  230. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
  231. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
  232. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/roadrunner/types.py +0 -0
  233. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/__init__.py +0 -0
  234. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/mutations.py +0 -0
  235. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/queries.py +0 -0
  236. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
  237. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/rules/types.py +0 -0
  238. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
  239. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
  240. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
  241. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
  242. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/sharelinks/types.py +0 -0
  243. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/__init__.py +0 -0
  244. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/mutations.py +0 -0
  245. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/queries.py +0 -0
  246. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/subscriptions.py +0 -0
  247. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/subjects/types.py +0 -0
  248. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/__init__.py +0 -0
  249. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/mutations.py +0 -0
  250. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/queries.py +0 -0
  251. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/subscriptions.py +0 -0
  252. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenant_profiles/types.py +0 -0
  253. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/__init__.py +0 -0
  254. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/mutations.py +0 -0
  255. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/queries.py +0 -0
  256. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
  257. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants/types.py +0 -0
  258. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/__init__.py +0 -0
  259. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/mutations.py +0 -0
  260. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/queries.py +0 -0
  261. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/subscriptions.py +0 -0
  262. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/tenants4/types.py +0 -0
  263. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/__init__.py +0 -0
  264. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/mutations.py +0 -0
  265. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
  266. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/__init__.py +0 -0
  267. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/mutations.py +0 -0
  268. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/queries.py +0 -0
  269. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/subscriptions.py +0 -0
  270. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/threat_score/types.py +0 -0
  271. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/__init__.py +0 -0
  272. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/mutations.py +0 -0
  273. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/queries.py +0 -0
  274. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/subscriptions.py +0 -0
  275. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trigger_action/types.py +0 -0
  276. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/__init__.py +0 -0
  277. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/mutations.py +0 -0
  278. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/queries.py +0 -0
  279. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
  280. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/trip/types.py +0 -0
  281. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/__init__.py +0 -0
  282. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/queries.py +0 -0
  283. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/users/subscriptions.py +0 -0
  284. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/__init__.py +0 -0
  285. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/mutations.py +0 -0
  286. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/queries.py +0 -0
  287. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/subscriptions.py +0 -0
  288. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/vdr/types.py +0 -0
  289. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/__init__.py +0 -0
  290. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/services/xdr_central_connector/subscriptions.py +0 -0
  291. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/templates/__init__.py +0 -0
  292. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/templates/_jinja2.py +0 -0
  293. {taegis_sdk_python-1.6.3 → taegis_sdk_python-1.6.4}/taegis_sdk_python/tokens.py +0 -0
  294. {taegis_sdk_python-1.6.3 → 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
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
@@ -1,3 +1,3 @@
1
1
  """Version idenitier."""
2
2
 
3
- __version__ = "1.6.3"
3
+ __version__ = "1.6.4"
@@ -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")
@@ -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:
@@ -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")
@@ -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
- @dataclass_json
227
- @dataclass(order=True, eq=True, frozen=True)
228
- class DataSourceAssetsFilter:
229
- """DataSourceAssetsFilter."""
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:
@@ -136,17 +136,45 @@ class TaegisSDKThreatQuery:
136
136
  raise GraphQLNoRowsInResultSetError("for query threatIdentitiesByConfidence")
137
137
 
138
138
  def threat_watchlist(
139
- self, type_: Union[ThreatParentType, TaegisEnum]
139
+ self,
140
+ type_: Union[ThreatParentType, TaegisEnum],
141
+ added_after: Optional[str] = None,
142
+ added_before: Optional[str] = None,
143
+ page: Optional[PageInput] = None,
144
+ filters: Optional[WatchlistFilter] = None,
140
145
  ) -> List[ThreatRelationship]:
141
146
  """Gets a watchlist by type. All results are considered **high confidence**.
142
147
  Only IP and DOMAIN types are supported. FILE type has been removed from this endpoint.
143
- Instead, use the paged endpoint threatTimsMalwareFiles for FILE types.."""
148
+ Instead, use the paged endpoint threatTimsMalwareFiles for FILE types.
149
+
150
+ Results are sorted by the 'created' field in descending order (newest first).
151
+
152
+ Additional filtering options:
153
+ - addedAfter: input timestamp to filter records created after this time
154
+ - addedBefore: input timestamp to filter records created before this time
155
+ - page: Optional pagination controls (offset/limit). If not provided, returns ALL results.
156
+ When paginating, clients must detect the last page by checking if the number of returned
157
+ results is less than the requested limit, or if an empty array is returned.
158
+ - filters: Supports targetRef and confidence filtering
159
+ Examples:
160
+ Confidence Range: filters: { where: { confidence_gte: 70, confidence_lte: 90 } }
161
+ Confidence Minimum: filters: { where: { confidence_gte: 80 } }
162
+ Confidence Maximum: filters: { where: { confidence_lte: 50 } }
163
+ Target Filter: filters: { where: { or: [{ targetRef: "malware_name" }] } }
164
+ Note: Each filter should use either confidence fields OR targetRef, not both in the same where clause
165
+
166
+ Time range examples:
167
+ - addedAfter: "2024-01-01T00:00:00Z", addedBefore: "2024-01-31T23:59:59Z"."""
144
168
  endpoint = "threatWatchlist"
145
169
 
146
170
  result = self.service.execute_query(
147
171
  endpoint=endpoint,
148
172
  variables={
149
173
  "type": prepare_input(type_),
174
+ "addedAfter": prepare_input(added_after),
175
+ "addedBefore": prepare_input(added_before),
176
+ "page": prepare_input(page),
177
+ "filters": prepare_input(filters),
150
178
  },
151
179
  output=build_output_string(ThreatRelationship),
152
180
  )
@@ -157,22 +185,42 @@ class TaegisSDKThreatQuery:
157
185
  raise GraphQLNoRowsInResultSetError("for query threatWatchlist")
158
186
 
159
187
  def threat_tims_malware_files(
160
- self, last_created: Optional[str] = None
188
+ self,
189
+ last_created: Optional[str] = None,
190
+ added_after: Optional[str] = None,
191
+ added_before: Optional[str] = None,
192
+ filters: Optional[MalwareFileFilter] = None,
161
193
  ) -> PagedMalwareFiles:
162
194
  """Get all TIMS 2.0 Malware file hashes. All results are considered **high confidence**.
163
- This is a paged service, requiring repeated queries. Total number of results can number over 750k.
195
+ This is a cursor-based paged service, requiring repeated queries. Total number of results can number over 750k.
164
196
  For the initial query, do not provide any search parameters or set 'last_created' to null.
165
197
  Subsequent queries should include the previous query's 'last_created' result from 'PagedMalwareFiles.last_created'
166
198
  as the input parameter. Returns pages of 10,000 at a time, sorted by the indicators field 'created' in desc order.
167
199
  The returned field 'has_more' will be false when the last page is returned.
168
200
  * Note: 'created' refers to an internal field associated with the indicator, not the time the indicator was first found.
169
- It is only used for sorting.."""
201
+ It is only used for sorting.
202
+
203
+ Additional filtering options:
204
+ - addedAfter: input timestamp to filter records created after this time
205
+ - addedBefore: input timestamp to filter records created before this time
206
+ - filters: Supports threat description filtering via OR array format only
207
+ Example: filters: { where: { or: [{ threatDescription: "malware_name" }] } }
208
+
209
+ Time range examples:
210
+ - addedAfter: "2024-01-01T00:00:00Z", addedBefore: "2024-01-31T23:59:59Z"
211
+
212
+ Pagination: Uses cursor-based pagination with 'last_created' parameter. For small time ranges
213
+ (results < 10k), all data is returned in one response. For larger datasets, use 'last_created'
214
+ to paginate through results.."""
170
215
  endpoint = "threatTimsMalwareFiles"
171
216
 
172
217
  result = self.service.execute_query(
173
218
  endpoint=endpoint,
174
219
  variables={
175
220
  "last_created": prepare_input(last_created),
221
+ "addedAfter": prepare_input(added_after),
222
+ "addedBefore": prepare_input(added_before),
223
+ "filters": prepare_input(filters),
176
224
  },
177
225
  output=build_output_string(PagedMalwareFiles),
178
226
  )
@@ -346,6 +346,15 @@ class ThreatPageInput:
346
346
  limit: Optional[int] = field(default=None, metadata=config(field_name="limit"))
347
347
 
348
348
 
349
+ @dataclass_json
350
+ @dataclass(order=True, eq=True, frozen=True)
351
+ class PageInput:
352
+ """PageInput."""
353
+
354
+ limit: Optional[int] = field(default=None, metadata=config(field_name="limit"))
355
+ offset: Optional[int] = field(default=None, metadata=config(field_name="offset"))
356
+
357
+
349
358
  @dataclass_json
350
359
  @dataclass(order=True, eq=True, frozen=True)
351
360
  class Facet:
@@ -887,6 +896,38 @@ class ThreatReportInput:
887
896
  tags: Optional[List[str]] = field(default=None, metadata=config(field_name="tags"))
888
897
 
889
898
 
899
+ @dataclass_json
900
+ @dataclass(order=True, eq=True, frozen=True)
901
+ class MalwareFileWhereInput:
902
+ """MalwareFileWhereInput."""
903
+
904
+ threat_description: Optional[str] = field(
905
+ default=None, metadata=config(field_name="threatDescription")
906
+ )
907
+ or_: Optional[List["MalwareFileWhereInput"]] = field(
908
+ default=None, metadata=config(field_name="or")
909
+ )
910
+
911
+
912
+ @dataclass_json
913
+ @dataclass(order=True, eq=True, frozen=True)
914
+ class WatchlistWhereInput:
915
+ """WatchlistWhereInput."""
916
+
917
+ target_ref: Optional[str] = field(
918
+ default=None, metadata=config(field_name="targetRef")
919
+ )
920
+ confidence_gte: Optional[int] = field(
921
+ default=None, metadata=config(field_name="confidence_gte")
922
+ )
923
+ confidence_lte: Optional[int] = field(
924
+ default=None, metadata=config(field_name="confidence_lte")
925
+ )
926
+ or_: Optional[List["WatchlistWhereInput"]] = field(
927
+ default=None, metadata=config(field_name="or")
928
+ )
929
+
930
+
890
931
  @dataclass_json
891
932
  @dataclass(order=True, eq=True, frozen=True)
892
933
  class FacetInfo:
@@ -2292,6 +2333,26 @@ class IndicatorFilter:
2292
2333
  )
2293
2334
 
2294
2335
 
2336
+ @dataclass_json
2337
+ @dataclass(order=True, eq=True, frozen=True)
2338
+ class MalwareFileFilter:
2339
+ """MalwareFileFilter."""
2340
+
2341
+ where: Optional[MalwareFileWhereInput] = field(
2342
+ default=None, metadata=config(field_name="where")
2343
+ )
2344
+
2345
+
2346
+ @dataclass_json
2347
+ @dataclass(order=True, eq=True, frozen=True)
2348
+ class WatchlistFilter:
2349
+ """WatchlistFilter."""
2350
+
2351
+ where: Optional[WatchlistWhereInput] = field(
2352
+ default=None, metadata=config(field_name="where")
2353
+ )
2354
+
2355
+
2295
2356
  @dataclass_json
2296
2357
  @dataclass(order=True, eq=True, frozen=True)
2297
2358
  class ThreatIdentityRelationship: