taegis-sdk-python 1.6.1__tar.gz → 1.6.3__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 (295) hide show
  1. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/PKG-INFO +2 -2
  2. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/pyproject.toml +1 -1
  3. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/_version.py +1 -1
  4. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/utils.py +1 -1
  5. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/service_core.py +27 -12
  6. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/__init__.py +49 -0
  7. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets2/types.py +22 -0
  8. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/authz/queries.py +2 -1
  9. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/authz/types.py +3 -0
  10. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/entity_context/types.py +1 -0
  11. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations2/mutations.py +5 -5
  12. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations2/queries.py +1 -1
  13. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations2/types.py +147 -122
  14. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/process_trees/queries.py +3 -1
  15. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/rules/types.py +2 -0
  16. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants/types.py +44 -73
  17. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants4/types.py +22 -2
  18. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat/types.py +1 -0
  19. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/users/types.py +3 -0
  20. taegis_sdk_python-1.6.1/taegis_sdk_python/transport/__init__.py +0 -0
  21. taegis_sdk_python-1.6.1/taegis_sdk_python/transport/aiohttp_websockets.py +0 -1224
  22. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/.gitignore +0 -0
  23. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/LICENSE +0 -0
  24. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/README.md +0 -0
  25. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/__init__.py +0 -0
  26. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/_consts.py +0 -0
  27. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/authentication.py +0 -0
  28. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/__init__.py +0 -0
  29. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/alerts/__init__.py +0 -0
  30. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/alerts/federated_search.py +0 -0
  31. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/alerts/search.py +0 -0
  32. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/cases/__init__.py +0 -0
  33. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/cases/federated_search.py +0 -0
  34. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/cases/search.py +0 -0
  35. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/events/__init__.py +0 -0
  36. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/events/search.py +0 -0
  37. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/investigations/__init__.py +0 -0
  38. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/investigations/federated_search.py +0 -0
  39. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/investigations/search.py +0 -0
  40. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/sharelinks/__init__.py +0 -0
  41. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/sharelinks/create.py +0 -0
  42. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/commons/sharelinks/unfurl.py +0 -0
  43. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/config.py +0 -0
  44. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/errors.py +0 -0
  45. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/__init__.py +0 -0
  46. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/logging/__init__.py +0 -0
  47. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/logging/_default.py +0 -0
  48. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/retry/__init__.py +0 -0
  49. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/middlewares/retry/_default.py +0 -0
  50. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/access_points/__init__.py +0 -0
  51. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/access_points/mutations.py +0 -0
  52. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/access_points/queries.py +0 -0
  53. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
  54. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/access_points/types.py +0 -0
  55. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/agent/__init__.py +0 -0
  56. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/agent/mutations.py +0 -0
  57. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/agent/queries.py +0 -0
  58. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
  59. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/agent/types.py +0 -0
  60. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts/__init__.py +0 -0
  61. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts/mutations.py +0 -0
  62. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts/queries.py +0 -0
  63. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
  64. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts/types.py +0 -0
  65. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts_history/__init__.py +0 -0
  66. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts_history/mutations.py +0 -0
  67. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts_history/queries.py +0 -0
  68. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts_history/subscriptions.py +0 -0
  69. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/alerts_history/types.py +0 -0
  70. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets/__init__.py +0 -0
  71. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets/mutations.py +0 -0
  72. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets/queries.py +0 -0
  73. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
  74. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets/types.py +0 -0
  75. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets2/__init__.py +0 -0
  76. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets2/mutations.py +0 -0
  77. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets2/queries.py +0 -0
  78. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
  79. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/audits/__init__.py +0 -0
  80. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/audits/mutations.py +0 -0
  81. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/audits/queries.py +0 -0
  82. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
  83. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/audits/types.py +0 -0
  84. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/authz/__init__.py +0 -0
  85. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/authz/mutations.py +0 -0
  86. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/authz/subscriptions.py +0 -0
  87. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/byoti/__init__.py +0 -0
  88. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/byoti/mutations.py +0 -0
  89. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/byoti/queries.py +0 -0
  90. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/byoti/subscriptions.py +0 -0
  91. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/byoti/types.py +0 -0
  92. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/clients/__init__.py +0 -0
  93. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/clients/mutations.py +0 -0
  94. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/clients/queries.py +0 -0
  95. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
  96. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/clients/types.py +0 -0
  97. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/collector/__init__.py +0 -0
  98. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/collector/mutations.py +0 -0
  99. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/collector/queries.py +0 -0
  100. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
  101. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/collector/types.py +0 -0
  102. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/comments/__init__.py +0 -0
  103. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/comments/mutations.py +0 -0
  104. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/comments/queries.py +0 -0
  105. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
  106. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/comments/types.py +0 -0
  107. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/contracted_endpoint/__init__.py +0 -0
  108. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/contracted_endpoint/mutations.py +0 -0
  109. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/contracted_endpoint/queries.py +0 -0
  110. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/contracted_endpoint/subscriptions.py +0 -0
  111. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/contracted_endpoint/types.py +0 -0
  112. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/cql_metadata/__init__.py +0 -0
  113. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/cql_metadata/mutations.py +0 -0
  114. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/cql_metadata/queries.py +0 -0
  115. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/cql_metadata/subscriptions.py +0 -0
  116. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/cql_metadata/types.py +0 -0
  117. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/datasources/__init__.py +0 -0
  118. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/datasources/mutations.py +0 -0
  119. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/datasources/queries.py +0 -0
  120. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/datasources/subscriptions.py +0 -0
  121. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/datasources/types.py +0 -0
  122. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
  123. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
  124. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
  125. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
  126. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/detector_registry/types.py +0 -0
  127. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
  128. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
  129. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
  130. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
  131. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
  132. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
  133. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
  134. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
  135. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
  136. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
  137. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/entity_context/__init__.py +0 -0
  138. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/entity_context/mutations.py +0 -0
  139. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/entity_context/queries.py +0 -0
  140. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/entity_context/subscriptions.py +0 -0
  141. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/event_search/__init__.py +0 -0
  142. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/event_search/mutations.py +0 -0
  143. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/event_search/queries.py +0 -0
  144. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
  145. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/event_search/types.py +0 -0
  146. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/events/__init__.py +0 -0
  147. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/events/mutations.py +0 -0
  148. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/events/queries.py +0 -0
  149. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/events/subscriptions.py +0 -0
  150. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/events/types.py +0 -0
  151. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/exports/__init__.py +0 -0
  152. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/exports/mutations.py +0 -0
  153. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/exports/queries.py +0 -0
  154. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
  155. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/exports/types.py +0 -0
  156. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/fast_ioc/__init__.py +0 -0
  157. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/fast_ioc/mutations.py +0 -0
  158. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/fast_ioc/queries.py +0 -0
  159. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/fast_ioc/subscriptions.py +0 -0
  160. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/fast_ioc/types.py +0 -0
  161. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/file_info/__init__.py +0 -0
  162. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/file_info/mutations.py +0 -0
  163. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/file_info/queries.py +0 -0
  164. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/file_info/subscriptions.py +0 -0
  165. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/file_info/types.py +0 -0
  166. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/ingest_stats/__init__.py +0 -0
  167. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/ingest_stats/mutations.py +0 -0
  168. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/ingest_stats/queries.py +0 -0
  169. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/ingest_stats/subscriptions.py +0 -0
  170. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/ingest_stats/types.py +0 -0
  171. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations/__init__.py +0 -0
  172. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations/mutations.py +0 -0
  173. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations/queries.py +0 -0
  174. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
  175. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations/types.py +0 -0
  176. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
  177. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
  178. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/isensor/__init__.py +0 -0
  179. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/isensor/mutations.py +0 -0
  180. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/isensor/queries.py +0 -0
  181. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/isensor/subscriptions.py +0 -0
  182. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/isensor/types.py +0 -0
  183. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
  184. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
  185. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
  186. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
  187. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
  188. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_context/__init__.py +0 -0
  189. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_context/mutations.py +0 -0
  190. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_context/queries.py +0 -0
  191. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_context/subscriptions.py +0 -0
  192. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_context/types.py +0 -0
  193. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_ioc/__init__.py +0 -0
  194. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_ioc/mutations.py +0 -0
  195. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_ioc/queries.py +0 -0
  196. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_ioc/subscriptions.py +0 -0
  197. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/multi_tenant_ioc/types.py +0 -0
  198. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/nl_search/__init__.py +0 -0
  199. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/nl_search/mutations.py +0 -0
  200. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/nl_search/queries.py +0 -0
  201. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/nl_search/subscriptions.py +0 -0
  202. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/nl_search/types.py +0 -0
  203. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
  204. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
  205. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notebooks/queries.py +0 -0
  206. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
  207. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notebooks/types.py +0 -0
  208. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notifications/__init__.py +0 -0
  209. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notifications/mutations.py +0 -0
  210. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notifications/queries.py +0 -0
  211. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
  212. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/notifications/types.py +0 -0
  213. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/preferences/__init__.py +0 -0
  214. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/preferences/mutations.py +0 -0
  215. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/preferences/queries.py +0 -0
  216. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
  217. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/preferences/types.py +0 -0
  218. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/process_trees/__init__.py +0 -0
  219. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/process_trees/mutations.py +0 -0
  220. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/process_trees/subscriptions.py +0 -0
  221. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/process_trees/types.py +0 -0
  222. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/queries/__init__.py +0 -0
  223. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/queries/mutations.py +0 -0
  224. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/queries/queries.py +0 -0
  225. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/queries/subscriptions.py +0 -0
  226. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/queries/types.py +0 -0
  227. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
  228. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
  229. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
  230. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
  231. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/roadrunner/types.py +0 -0
  232. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/rules/__init__.py +0 -0
  233. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/rules/mutations.py +0 -0
  234. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/rules/queries.py +0 -0
  235. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
  236. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
  237. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
  238. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
  239. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
  240. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/sharelinks/types.py +0 -0
  241. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/subjects/__init__.py +0 -0
  242. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/subjects/mutations.py +0 -0
  243. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/subjects/queries.py +0 -0
  244. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/subjects/subscriptions.py +0 -0
  245. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/subjects/types.py +0 -0
  246. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenant_profiles/__init__.py +0 -0
  247. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenant_profiles/mutations.py +0 -0
  248. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenant_profiles/queries.py +0 -0
  249. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenant_profiles/subscriptions.py +0 -0
  250. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenant_profiles/types.py +0 -0
  251. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants/__init__.py +0 -0
  252. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants/mutations.py +0 -0
  253. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants/queries.py +0 -0
  254. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
  255. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants4/__init__.py +0 -0
  256. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants4/mutations.py +0 -0
  257. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants4/queries.py +0 -0
  258. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/tenants4/subscriptions.py +0 -0
  259. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat/__init__.py +0 -0
  260. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat/mutations.py +0 -0
  261. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat/queries.py +0 -0
  262. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
  263. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat_score/__init__.py +0 -0
  264. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat_score/mutations.py +0 -0
  265. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat_score/queries.py +0 -0
  266. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat_score/subscriptions.py +0 -0
  267. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/threat_score/types.py +0 -0
  268. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trigger_action/__init__.py +0 -0
  269. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trigger_action/mutations.py +0 -0
  270. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trigger_action/queries.py +0 -0
  271. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trigger_action/subscriptions.py +0 -0
  272. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trigger_action/types.py +0 -0
  273. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trip/__init__.py +0 -0
  274. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trip/mutations.py +0 -0
  275. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trip/queries.py +0 -0
  276. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
  277. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/trip/types.py +0 -0
  278. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/users/__init__.py +0 -0
  279. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/users/mutations.py +0 -0
  280. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/users/queries.py +0 -0
  281. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/users/subscriptions.py +0 -0
  282. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/vdr/__init__.py +0 -0
  283. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/vdr/mutations.py +0 -0
  284. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/vdr/queries.py +0 -0
  285. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/vdr/subscriptions.py +0 -0
  286. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/vdr/types.py +0 -0
  287. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/xdr_central_connector/__init__.py +0 -0
  288. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/xdr_central_connector/mutations.py +0 -0
  289. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/xdr_central_connector/queries.py +0 -0
  290. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/xdr_central_connector/subscriptions.py +0 -0
  291. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/services/xdr_central_connector/types.py +0 -0
  292. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/templates/__init__.py +0 -0
  293. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/templates/_jinja2.py +0 -0
  294. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/taegis_sdk_python/tokens.py +0 -0
  295. {taegis_sdk_python-1.6.1 → taegis_sdk_python-1.6.3}/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.1
3
+ Version: 1.6.3
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
@@ -197,7 +197,7 @@ Requires-Dist: aiohttp
197
197
  Requires-Dist: backoff
198
198
  Requires-Dist: dataclasses-json
199
199
  Requires-Dist: filelock>=3.12.4
200
- Requires-Dist: gql<4,>=3.5.0
200
+ Requires-Dist: gql>=4
201
201
  Requires-Dist: graphql-core
202
202
  Requires-Dist: jinja2
203
203
  Requires-Dist: oauthlib
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "aiohttp",
25
25
  "dataclasses-json",
26
26
  "filelock>=3.12.4",
27
- "gql>=3.5.0,<4",
27
+ "gql>=4",
28
28
  "graphql-core",
29
29
  "oauthlib",
30
30
  "pyjwt>=2.8.0",
@@ -1,3 +1,3 @@
1
1
  """Version idenitier."""
2
2
 
3
- __version__ = "1.6.1"
3
+ __version__ = "1.6.3"
@@ -23,7 +23,7 @@ def scrub_dict(d: Mapping):
23
23
  access_tokens = get_access_tokens()
24
24
 
25
25
  if "authorization" in d:
26
- token = d["Authorization"].replace("Bearer ")
26
+ token = d["Authorization"].replace("Bearer ", "")
27
27
  access_tokens.append(token)
28
28
 
29
29
  scrubbed = d.copy()
@@ -10,14 +10,14 @@ import threading
10
10
  from datetime import datetime, timedelta
11
11
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
12
12
 
13
- from gql import Client, gql
13
+ from gql import Client, GraphQLRequest
14
14
  from gql.transport import Transport
15
15
  from gql.transport.aiohttp import AIOHTTPTransport
16
+ from gql.transport.aiohttp_websockets import AIOHTTPWebsocketsTransport
16
17
  from graphql import GraphQLError, GraphQLField, GraphQLSchema
17
18
 
18
19
  from taegis_sdk_python._version import __version__
19
20
  from taegis_sdk_python.errors import InvalidGraphQLEndpoint
20
- from taegis_sdk_python.transport.aiohttp_websockets import AIOHTTPWebsocketsTransport
21
21
  from taegis_sdk_python.utils import async_block, prepare_variables, remove_node
22
22
 
23
23
  if TYPE_CHECKING: # pragma: no cover
@@ -497,13 +497,22 @@ class ServiceCore:
497
497
  }
498
498
  )
499
499
 
500
- query = gql(query_string)
501
- return await self.sync_client.execute_async(
502
- query,
500
+ graphql_request = GraphQLRequest(
501
+ request=query_string,
503
502
  variable_values=prepare_variables(variables),
503
+ )
504
+
505
+ client = self.sync_client
506
+
507
+ response = await client.execute_async(
508
+ graphql_request,
504
509
  extra_args=extra_args,
505
510
  )
506
511
 
512
+ self.service.response_headers = client.transport.response_headers
513
+
514
+ return response
515
+
507
516
  @async_block
508
517
  async def subscribe(
509
518
  self, query_string: str, variables: Optional[Dict[str, Any]] = None
@@ -522,15 +531,21 @@ class ServiceCore:
522
531
  List[Any]
523
532
  List of subscription results
524
533
  """
525
- query = gql(query_string)
534
+ graphql_request = GraphQLRequest(
535
+ request=query_string,
536
+ variable_values=prepare_variables(variables),
537
+ )
538
+
526
539
  results = []
527
- async with self.ws_client as session:
528
- async for result in session.subscribe(
529
- query,
530
- variable_values=prepare_variables(variables),
531
- ):
540
+
541
+ client = self.ws_client
542
+
543
+ async with client as session:
544
+ async for result in session.subscribe(graphql_request):
532
545
  results.append(result)
533
546
 
547
+ self.service.response_headers = client.transport.response_headers
548
+
534
549
  return results[:-1]
535
550
 
536
551
  @async_block
@@ -576,7 +591,7 @@ class ServiceCore:
576
591
  # output string is valid
577
592
  for _ in range(10000):
578
593
  try:
579
- session.client.validate(gql(query_string))
594
+ session.client.validate(GraphQLRequest(request=query_string))
580
595
  break
581
596
 
582
597
  except GraphQLError as exc:
@@ -4,12 +4,14 @@ Taegis SDK Python GraphQL Service manager.
4
4
 
5
5
  import logging
6
6
  import threading
7
+ from collections.abc import Mapping
7
8
  from ssl import SSLContext
8
9
  from typing import Any, Dict, Literal, Optional, Union
9
10
 
10
11
  import aiohttp
11
12
  from aiohttp.client_reqrep import Fingerprint
12
13
  from aiohttp.typedefs import LooseHeaders
14
+ from multidict import CIMultiDict, CIMultiDictProxy
13
15
 
14
16
  from taegis_sdk_python._consts import (
15
17
  TAEGIS_ENVIRONMENT_URLS,
@@ -102,6 +104,7 @@ class GraphQLService:
102
104
  max_message_size: int = 0,
103
105
  use_universal_authentication: bool = False,
104
106
  middlewares=None,
107
+ reuse_request_id=False,
105
108
  ): # pylint: disable=too-many-statements
106
109
  """
107
110
  GraphQLService
@@ -144,6 +147,8 @@ class GraphQLService:
144
147
  ValueError
145
148
  environment must be charlie, delta, echo, or foxtrot (or equivalent)
146
149
  """
150
+ self.response_headers: CIMultiDictProxy[str] = CIMultiDictProxy(CIMultiDict())
151
+
147
152
  self._environments = environments or TAEGIS_ENVIRONMENT_URLS
148
153
  self._environment = environment or list(self._environments)[0]
149
154
  self._use_universal_authentication = use_universal_authentication
@@ -177,6 +182,7 @@ class GraphQLService:
177
182
  self._execute_timeout = execute_timeout
178
183
  self._max_message_size = max_message_size
179
184
  self._middlewares = middlewares or ()
185
+ self._reuse_request_id = reuse_request_id
180
186
 
181
187
  self._access_points = None
182
188
  self._agent = None
@@ -231,6 +237,37 @@ class GraphQLService:
231
237
  self._vdr = None
232
238
  self._xdr_central_connector = None
233
239
 
240
+ def __eq__(self, other):
241
+ """Compare equality of a GraphQLService.
242
+
243
+ As the GraphQService is a network service, equality is limited to the
244
+ context in which a request will be made.
245
+ """
246
+ if isinstance(other, GraphQLService):
247
+ return (
248
+ self.tenant_id == other.tenant_id
249
+ and self._environments[self.environment]
250
+ == other._environments[other.environment]
251
+ and self.url == other.url
252
+ and self.gateway == other.gateway
253
+ )
254
+ return NotImplemented
255
+
256
+ def __hash__(self):
257
+ """Hash of a GraphQLService.
258
+
259
+ As the GraphQService is a network service, hash values are limited to the
260
+ context in which a request will be made.
261
+ """
262
+ return hash(
263
+ (
264
+ self.tenant_id,
265
+ self._environments[self.environment],
266
+ self.url,
267
+ self.gateway,
268
+ )
269
+ )
270
+
234
271
  def __call__(self, **kwargs):
235
272
  if threading.get_ident() not in self._context_kwargs:
236
273
  self._context_kwargs[threading.get_ident()] = []
@@ -313,6 +350,11 @@ class GraphQLService:
313
350
  """Taegis Tenant Context."""
314
351
  return self._context_manager.get("tenant_id", self._tenant_id)
315
352
 
353
+ @property
354
+ def reuse_request_id(self):
355
+ """Reuse Previous Taegis X-Request-Id in response_headers."""
356
+ return self._context_manager.get("reuse_request_id", self._reuse_request_id)
357
+
316
358
  @property
317
359
  def access_token(self):
318
360
  """Taegis Access Token."""
@@ -357,6 +399,13 @@ class GraphQLService:
357
399
  if self.tenant_id:
358
400
  headers["X-Tenant-Context"] = self.tenant_id
359
401
 
402
+ if (
403
+ self.reuse_request_id
404
+ and isinstance(self.response_headers, Mapping)
405
+ and (x_request_id := self.response_headers.get("X-Request-Id"))
406
+ ):
407
+ headers["X-Amzn-Trace-Id"] = x_request_id
408
+
360
409
  headers.update(self.extra_headers)
361
410
 
362
411
  return headers
@@ -108,6 +108,8 @@ class AssetSearchOrderByInputV2(str, Enum):
108
108
  VULNERABILITY_STATUS_DESC = "vulnerability_status_desc"
109
109
  VENDOR_PROVIDED_HEALTH_ASC = "vendor_provided_health_asc"
110
110
  VENDOR_PROVIDED_HEALTH_DESC = "vendor_provided_health_desc"
111
+ VENDOR_PROVIDED_HEALTH_RAW_ASC = "vendor_provided_health_raw_asc"
112
+ VENDOR_PROVIDED_HEALTH_RAW_DESC = "vendor_provided_health_raw_desc"
111
113
  USERNAME_ASC = "username_asc"
112
114
  USERNAME_DESC = "username_desc"
113
115
  REBOOT_REQUIRED_ASC = "reboot_required_asc"
@@ -118,6 +120,8 @@ class AssetSearchOrderByInputV2(str, Enum):
118
120
  BIOS_SERIAL_DESC = "bios_serial_desc"
119
121
  FIRST_DISK_SERIAL_ASC = "first_disk_serial_asc"
120
122
  FIRST_DISK_SERIAL_DESC = "first_disk_serial_desc"
123
+ PENDING_UNINSTALL_ASC = "pending_uninstall_asc"
124
+ PENDING_UNINSTALL_DESC = "pending_uninstall_desc"
121
125
 
122
126
 
123
127
  class AssetHostnameSearchOrderByInput(str, Enum):
@@ -1208,6 +1212,9 @@ class AssetWhereInputV2:
1208
1212
  sensor_version: Optional[str] = field(
1209
1213
  default=None, metadata=config(field_name="sensorVersion")
1210
1214
  )
1215
+ vendor_provided_health_raw: Optional[str] = field(
1216
+ default=None, metadata=config(field_name="vendorProvidedHealthRaw")
1217
+ )
1211
1218
  system_type: Optional[str] = field(
1212
1219
  default=None, metadata=config(field_name="systemType")
1213
1220
  )
@@ -1250,6 +1257,12 @@ class AssetWhereInputV2:
1250
1257
  reboot_required: Optional[bool] = field(
1251
1258
  default=None, metadata=config(field_name="rebootRequired")
1252
1259
  )
1260
+ agent_mode: Optional[str] = field(
1261
+ default=None, metadata=config(field_name="agentMode")
1262
+ )
1263
+ pending_uninstall: Optional[bool] = field(
1264
+ default=None, metadata=config(field_name="pendingUninstall")
1265
+ )
1253
1266
  and_: Optional[List["AssetWhereInputV2"]] = field(
1254
1267
  default=None, metadata=config(field_name="and")
1255
1268
  )
@@ -1408,9 +1421,18 @@ class AssetV2:
1408
1421
  uninstall: Optional[bool] = field(
1409
1422
  default=None, metadata=config(field_name="uninstall")
1410
1423
  )
1424
+ vendor_provided_health_raw: Optional[str] = field(
1425
+ default=None, metadata=config(field_name="vendorProvidedHealthRaw")
1426
+ )
1411
1427
  reboot_required: Optional[bool] = field(
1412
1428
  default=None, metadata=config(field_name="rebootRequired")
1413
1429
  )
1430
+ agent_mode: Optional[str] = field(
1431
+ default=None, metadata=config(field_name="agentMode")
1432
+ )
1433
+ pending_uninstall: Optional[bool] = field(
1434
+ default=None, metadata=config(field_name="pendingUninstall")
1435
+ )
1414
1436
  hostnames: Optional[List[HostnameV2]] = field(
1415
1437
  default=None, metadata=config(field_name="hostnames")
1416
1438
  )
@@ -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
  )
@@ -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")
@@ -955,6 +955,7 @@ class EntityContextEntity:
955
955
 
956
956
  id: Optional[str] = field(default=None, metadata=config(field_name="id"))
957
957
  type: Optional[str] = field(default=None, metadata=config(field_name="type"))
958
+ subtype: Optional[str] = field(default=None, metadata=config(field_name="subtype"))
958
959
  first_seen: Optional[str] = field(
959
960
  default=None, metadata=config(field_name="firstSeen")
960
961
  )
@@ -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 alerts/events will may not show up in the returned case until the async job is fully complete.
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 alerts/events will can remain attached to the case until the async job is fully complete.
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 alerts attached to it, the alertsResolutionStatus field is required and alerts will be resolved based on the provided status.
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 alerts will may not reflect the updated status until the async job is fully complete.
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 alerts will have been updated.
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 alerts, events and other actions taken in relation to a case.."""
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(