taegis-sdk-python 1.0.0a8__tar.gz → 1.0.0a10__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 (165) hide show
  1. {taegis-sdk-python-1.0.0a8/taegis_sdk_python.egg-info → taegis-sdk-python-1.0.0a10}/PKG-INFO +1 -1
  2. taegis-sdk-python-1.0.0a10/taegis_sdk_python/_version.py +1 -0
  3. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/authentication.py +5 -2
  4. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/service_core.py +9 -5
  5. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/__init__.py +18 -0
  6. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets2/types.py +28 -3
  7. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/audits/types.py +12 -0
  8. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/detector_registry/__init__.py +33 -0
  9. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/detector_registry/mutations.py +29 -0
  10. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/detector_registry/queries.py +91 -0
  11. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/detector_registry/subscriptions.py +29 -0
  12. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/detector_registry/types.py +89 -0
  13. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations2/mutations.py +23 -0
  14. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations2/queries.py +17 -0
  15. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations2/types.py +70 -0
  16. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/preferences/__init__.py +31 -0
  17. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/preferences/mutations.py +159 -0
  18. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/preferences/queries.py +168 -0
  19. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/preferences/subscriptions.py +29 -0
  20. taegis-sdk-python-1.0.0a10/taegis_sdk_python/services/preferences/types.py +372 -0
  21. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10/taegis_sdk_python.egg-info}/PKG-INFO +1 -1
  22. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python.egg-info/SOURCES.txt +10 -0
  23. taegis-sdk-python-1.0.0a8/taegis_sdk_python/_version.py +0 -1
  24. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/LICENSE +0 -0
  25. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/MANIFEST.in +0 -0
  26. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/README.md +0 -0
  27. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/requirements-dev.txt +0 -0
  28. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/requirements-test.txt +0 -0
  29. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/requirements.txt +0 -0
  30. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/setup.cfg +0 -0
  31. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/setup.py +0 -0
  32. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/__init__.py +0 -0
  33. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/_consts.py +0 -0
  34. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/config.py +0 -0
  35. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/errors.py +0 -0
  36. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/access_points/__init__.py +0 -0
  37. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/access_points/mutations.py +0 -0
  38. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/access_points/queries.py +0 -0
  39. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
  40. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/access_points/types.py +0 -0
  41. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/agent/__init__.py +0 -0
  42. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/agent/mutations.py +0 -0
  43. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/agent/queries.py +0 -0
  44. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
  45. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/agent/types.py +0 -0
  46. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/alerts/__init__.py +0 -0
  47. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/alerts/mutations.py +0 -0
  48. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/alerts/queries.py +0 -0
  49. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
  50. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/alerts/types.py +0 -0
  51. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets/__init__.py +0 -0
  52. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets/mutations.py +0 -0
  53. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets/queries.py +0 -0
  54. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
  55. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets/types.py +0 -0
  56. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets2/__init__.py +0 -0
  57. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets2/mutations.py +0 -0
  58. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets2/queries.py +0 -0
  59. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
  60. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/audits/__init__.py +0 -0
  61. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/audits/mutations.py +0 -0
  62. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/audits/queries.py +0 -0
  63. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
  64. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/clients/__init__.py +0 -0
  65. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/clients/mutations.py +0 -0
  66. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/clients/queries.py +0 -0
  67. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
  68. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/clients/types.py +0 -0
  69. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/collector/__init__.py +0 -0
  70. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/collector/mutations.py +0 -0
  71. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/collector/queries.py +0 -0
  72. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
  73. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/collector/types.py +0 -0
  74. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/comments/__init__.py +0 -0
  75. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/comments/mutations.py +0 -0
  76. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/comments/queries.py +0 -0
  77. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
  78. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/comments/types.py +0 -0
  79. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
  80. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
  81. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
  82. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
  83. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
  84. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
  85. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
  86. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
  87. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
  88. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
  89. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/entity_profile/__init__.py +0 -0
  90. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/entity_profile/mutations.py +0 -0
  91. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/entity_profile/queries.py +0 -0
  92. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/entity_profile/subscriptions.py +0 -0
  93. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/entity_profile/types.py +0 -0
  94. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/event_search/__init__.py +0 -0
  95. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/event_search/mutations.py +0 -0
  96. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/event_search/queries.py +0 -0
  97. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
  98. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/event_search/types.py +0 -0
  99. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/events/__init__.py +0 -0
  100. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/events/mutations.py +0 -0
  101. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/events/queries.py +0 -0
  102. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/events/subscriptions.py +0 -0
  103. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/events/types.py +0 -0
  104. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/exports/__init__.py +0 -0
  105. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/exports/mutations.py +0 -0
  106. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/exports/queries.py +0 -0
  107. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
  108. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/exports/types.py +0 -0
  109. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations/__init__.py +0 -0
  110. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations/mutations.py +0 -0
  111. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations/queries.py +0 -0
  112. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
  113. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations/types.py +0 -0
  114. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
  115. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
  116. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
  117. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
  118. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
  119. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
  120. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
  121. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
  122. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
  123. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notebooks/queries.py +0 -0
  124. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
  125. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notebooks/types.py +0 -0
  126. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notifications/__init__.py +0 -0
  127. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notifications/mutations.py +0 -0
  128. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notifications/queries.py +0 -0
  129. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
  130. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/notifications/types.py +0 -0
  131. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/rules/__init__.py +0 -0
  132. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/rules/mutations.py +0 -0
  133. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/rules/queries.py +0 -0
  134. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
  135. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/rules/types.py +0 -0
  136. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
  137. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
  138. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
  139. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
  140. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/sharelinks/types.py +0 -0
  141. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/tenants/__init__.py +0 -0
  142. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/tenants/mutations.py +0 -0
  143. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/tenants/queries.py +0 -0
  144. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
  145. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/tenants/types.py +0 -0
  146. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/threat/__init__.py +0 -0
  147. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/threat/mutations.py +0 -0
  148. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/threat/queries.py +0 -0
  149. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
  150. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/threat/types.py +0 -0
  151. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/trip/__init__.py +0 -0
  152. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/trip/mutations.py +0 -0
  153. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/trip/queries.py +0 -0
  154. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
  155. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/trip/types.py +0 -0
  156. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/users/__init__.py +0 -0
  157. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/users/mutations.py +0 -0
  158. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/users/queries.py +0 -0
  159. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/users/subscriptions.py +0 -0
  160. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/services/users/types.py +0 -0
  161. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/tokens.py +0 -0
  162. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python/utils.py +0 -0
  163. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python.egg-info/dependency_links.txt +0 -0
  164. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python.egg-info/requires.txt +0 -0
  165. {taegis-sdk-python-1.0.0a8 → taegis-sdk-python-1.0.0a10}/taegis_sdk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: taegis-sdk-python
3
- Version: 1.0.0a8
3
+ Version: 1.0.0a10
4
4
  Summary: Taegis Python SDK
5
5
  Home-page: https://github.com/secureworks/taegis-sdk-python
6
6
  Author: Secureworks
@@ -0,0 +1 @@
1
+ __version__ = "v1.0.0-alpha10"
@@ -178,7 +178,9 @@ def get_token_by_oauth(
178
178
 
179
179
 
180
180
  def get_token_by_password_grant(
181
- request_url: str, username: str
181
+ request_url: str,
182
+ username: str,
183
+ password: Optional[str] = None,
182
184
  ) -> str: # pragma: no cover
183
185
  """Get an access token by username/password with mfa.
184
186
 
@@ -201,7 +203,8 @@ def get_token_by_password_grant(
201
203
  """
202
204
  auth_uri = "/auth/api/v2/auth/token"
203
205
 
204
- password = getpass("Password: ")
206
+ if not password:
207
+ password = getpass("Password: ")
205
208
 
206
209
  response = post(
207
210
  f"{request_url}{auth_uri}",
@@ -78,16 +78,20 @@ class ServiceCore:
78
78
  @property
79
79
  def ws_client(self) -> Client:
80
80
  """GraphQL WebSockets Transport with Client."""
81
+ subprotocols = [
82
+ "graphql-ws",
83
+ f"access-token-{self.service.access_token}",
84
+ ]
85
+
86
+ if self.service.tenant_id:
87
+ subprotocols.append(f"x-tenant-context-{self.service.tenant_id}")
88
+
81
89
  transport = WebsocketsTransport(
82
90
  f"{self.wss_url}{self.gateway}",
83
91
  headers={
84
92
  "User-Agent": f"taegis_sdk_python/{__version__}",
85
93
  },
86
- subprotocols=[
87
- "graphql-ws",
88
- f"x-tenant-context-{self.service.tenant_id}",
89
- f"access-token-{self.service.access_token}",
90
- ],
94
+ subprotocols=subprotocols,
91
95
  connect_args={"max_size": None},
92
96
  )
93
97
  client = Client(transport=transport, fetch_schema_from_transport=True)
@@ -17,6 +17,7 @@ from taegis_sdk_python.services.audits import AuditsService
17
17
  from taegis_sdk_python.services.clients import ClientsService
18
18
  from taegis_sdk_python.services.collector import CollectorService
19
19
  from taegis_sdk_python.services.comments import CommentsService
20
+ from taegis_sdk_python.services.detector_registry import DetectorRegistryService
20
21
  from taegis_sdk_python.services.endpoint_command_manager import (
21
22
  EndpointCommandManagerService,
22
23
  )
@@ -32,6 +33,7 @@ from taegis_sdk_python.services.investigations2 import Investigations2Service
32
33
  from taegis_sdk_python.services.mitre_attack_info import MitreAttackInfoService
33
34
  from taegis_sdk_python.services.notebooks import NotebooksService
34
35
  from taegis_sdk_python.services.notifications import NotificationsService
36
+ from taegis_sdk_python.services.preferences import PreferencesService
35
37
  from taegis_sdk_python.services.rules import RulesService
36
38
  from taegis_sdk_python.services.sharelinks import SharelinksService
37
39
  from taegis_sdk_python.services.tenants import TenantsService
@@ -91,6 +93,7 @@ class GraphQLService:
91
93
  self._clients = None
92
94
  self._collector = None
93
95
  self._comments = None
96
+ self._detector_registry = None
94
97
  self._endpoint_command_manager = None
95
98
  self._endpoint_management_service = None
96
99
  self._entity_profile = None
@@ -102,6 +105,7 @@ class GraphQLService:
102
105
  self._mitre_attack_info = None
103
106
  self._notebooks = None
104
107
  self._notifications = None
108
+ self._preferences = None
105
109
  self._rules = None
106
110
  self._core = None
107
111
  self._sharelinks = None
@@ -242,6 +246,13 @@ class GraphQLService:
242
246
  self._comments = CommentsService(self)
243
247
  return self._comments
244
248
 
249
+ @property
250
+ def detector_registry(self):
251
+ """Detector Registry Service Endpoint."""
252
+ if not self._detector_registry:
253
+ self._detector_registry = DetectorRegistryService(self)
254
+ return self._detector_registry
255
+
245
256
  @property
246
257
  def endpoint_command_manager(self):
247
258
  """Endpoint Command Manager Service Endpoint."""
@@ -319,6 +330,13 @@ class GraphQLService:
319
330
  self._notifications = NotificationsService(self)
320
331
  return self._notifications
321
332
 
333
+ @property
334
+ def preferences(self):
335
+ """Preferences Service Endpoint."""
336
+ if not self._preferences:
337
+ self._preferences = PreferencesService(self)
338
+ return self._preferences
339
+
322
340
  @property
323
341
  def rules(self):
324
342
  """Rules Service Endpoint."""
@@ -62,6 +62,8 @@ class AssetSearchOrderByInputV2(str, Enum):
62
62
  CONNECTION_STATUS_DESC = "connection_status_desc"
63
63
  ISOLATION_STATUS_ASC = "isolation_status_asc"
64
64
  ISOLATION_STATUS_DESC = "isolation_status_desc"
65
+ DESIRED_ISOLATION_STATUS_ASC = "desired_isolation_status_asc"
66
+ DESIRED_ISOLATION_STATUS_DESC = "desired_isolation_status_desc"
65
67
  IP_ADDRESS_ASC = "ip_address_asc"
66
68
  IP_ADDRESS_DESC = "ip_address_desc"
67
69
  ENDPOINT_TYPE_ASC = "endpoint_type_asc"
@@ -82,6 +84,13 @@ class AssetSearchOrderByInputV2(str, Enum):
82
84
  TAG_DESC = "tag_desc"
83
85
 
84
86
 
87
+ class InvestigationsOrderByInput(str, Enum):
88
+ """InvestigationsOrderByInput."""
89
+
90
+ CREATED_AT_ASC = "created_at_asc"
91
+ CREATED_AT_DESC = "created_at_desc"
92
+
93
+
85
94
  class CanIsolateResponse(str, Enum):
86
95
  """CanIsolateResponse."""
87
96
 
@@ -199,10 +208,20 @@ class TagV2:
199
208
 
200
209
  @dataclass_json
201
210
  @dataclass(order=True, eq=True, frozen=True)
202
- class Investigation:
203
- """Investigation."""
211
+ class AssetInvestigation:
212
+ """AssetInvestigation."""
204
213
 
205
214
  id: Optional[str] = field(default=None, metadata=config(field_name="id"))
215
+ investigation_id: Optional[str] = field(
216
+ default=None, metadata=config(field_name="investigationId")
217
+ )
218
+ created_at: Optional[str] = field(
219
+ default=None, metadata=config(field_name="createdAt")
220
+ )
221
+ updated_at: Optional[str] = field(
222
+ default=None, metadata=config(field_name="updatedAt")
223
+ )
224
+ host_id: Optional[str] = field(default=None, metadata=config(field_name="hostId"))
206
225
 
207
226
 
208
227
  @dataclass_json
@@ -397,6 +416,9 @@ class AssetWhereInputV2:
397
416
  created_at_gte: Optional[str] = field(
398
417
  default=None, metadata=config(field_name="createdAt_gte")
399
418
  )
419
+ desired_isolation_status: Optional[str] = field(
420
+ default=None, metadata=config(field_name="desiredIsolationStatus")
421
+ )
400
422
  group_name: Optional[str] = field(
401
423
  default=None, metadata=config(field_name="groupName")
402
424
  )
@@ -585,6 +607,9 @@ class AssetV2:
585
607
  isolation_status: Optional[str] = field(
586
608
  default=None, metadata=config(field_name="isolationStatus")
587
609
  )
610
+ desired_isolation_status: Optional[str] = field(
611
+ default=None, metadata=config(field_name="desiredIsolationStatus")
612
+ )
588
613
  model: Optional[str] = field(default=None, metadata=config(field_name="model"))
589
614
  cloud_provider_name: Optional[str] = field(
590
615
  default=None, metadata=config(field_name="cloudProviderName")
@@ -611,7 +636,7 @@ class AssetV2:
611
636
  endpoint_group: Optional[EndpointGroupV2] = field(
612
637
  default=None, metadata=config(field_name="endpointGroup")
613
638
  )
614
- investigations: Optional[List[Investigation]] = field(
639
+ investigations: Optional[List[AssetInvestigation]] = field(
615
640
  default=None, metadata=config(field_name="investigations")
616
641
  )
617
642
 
@@ -198,6 +198,12 @@ class AuditEventResult:
198
198
  class AllAuditsInput:
199
199
  """AllAuditsInput."""
200
200
 
201
+ tenant_ids: Optional[List[str]] = field(
202
+ default=None, metadata=config(field_name="tenantIDs")
203
+ )
204
+ session_id: Optional[str] = field(
205
+ default=None, metadata=config(field_name="sessionID")
206
+ )
201
207
  offset: Optional[int] = field(default=None, metadata=config(field_name="offset"))
202
208
  limit: Optional[int] = field(default=None, metadata=config(field_name="limit"))
203
209
  before: Optional[str] = field(default=None, metadata=config(field_name="before"))
@@ -215,6 +221,12 @@ class AllAuditsInput:
215
221
  class AuditSearchInput:
216
222
  """AuditSearchInput."""
217
223
 
224
+ tenant_ids: Optional[List[str]] = field(
225
+ default=None, metadata=config(field_name="tenantIDs")
226
+ )
227
+ session_id: Optional[str] = field(
228
+ default=None, metadata=config(field_name="sessionID")
229
+ )
218
230
  offset: Optional[int] = field(default=None, metadata=config(field_name="offset"))
219
231
  limit: Optional[int] = field(default=None, metadata=config(field_name="limit"))
220
232
  id: Optional[str] = field(default=None, metadata=config(field_name="id"))
@@ -0,0 +1,33 @@
1
+ """"DetectorRegistry Service."""
2
+ from taegis_sdk_python.service_core import ServiceCore
3
+ from taegis_sdk_python.services.detector_registry.mutations import (
4
+ TaegisSDKDetectorRegistryMutation,
5
+ )
6
+ from taegis_sdk_python.services.detector_registry.queries import (
7
+ TaegisSDKDetectorRegistryQuery,
8
+ )
9
+ from taegis_sdk_python.services.detector_registry.subscriptions import (
10
+ TaegisSDKDetectorRegistrySubscription,
11
+ )
12
+
13
+
14
+ class DetectorRegistryService(ServiceCore):
15
+ """Taegis DetectorRegistry Service."""
16
+
17
+ @property
18
+ def query(self):
19
+ if not self._queries:
20
+ self._queries = TaegisSDKDetectorRegistryQuery(self)
21
+ return self._queries
22
+
23
+ @property
24
+ def mutation(self):
25
+ if not self._mutations:
26
+ self._mutations = TaegisSDKDetectorRegistryMutation(self)
27
+ return self._mutations
28
+
29
+ @property
30
+ def subscription(self):
31
+ if not self._subscriptions:
32
+ self._subscriptions = TaegisSDKDetectorRegistrySubscription(self)
33
+ return self._subscriptions
@@ -0,0 +1,29 @@
1
+ """DetectorRegistry Mutation."""
2
+ # pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code, wildcard-import, unused-wildcard-import, cyclic-import
3
+
4
+
5
+ # Autogenerated
6
+ # DO NOT MODIFY
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import TYPE_CHECKING, Any, List, Dict, Optional, Tuple, Union
11
+
12
+ from taegis_sdk_python.utils import (
13
+ build_output_string,
14
+ prepare_input,
15
+ parse_union_result,
16
+ )
17
+ from taegis_sdk_python.services.detector_registry.types import *
18
+
19
+ from taegis_sdk_python import GraphQLNoRowsInResultSetError
20
+
21
+ if TYPE_CHECKING: # pragma: no cover
22
+ from taegis_sdk_python.services.detector_registry import DetectorRegistryService
23
+
24
+
25
+ class TaegisSDKDetectorRegistryMutation:
26
+ """Teagis Detector_registry Mutation operations."""
27
+
28
+ def __init__(self, service: DetectorRegistryService):
29
+ self.service = service
@@ -0,0 +1,91 @@
1
+ """DetectorRegistry Query."""
2
+ # pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code, wildcard-import, unused-wildcard-import, cyclic-import
3
+
4
+
5
+ # Autogenerated
6
+ # DO NOT MODIFY
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import TYPE_CHECKING, Any, List, Dict, Optional, Tuple, Union
11
+
12
+ from taegis_sdk_python.utils import (
13
+ build_output_string,
14
+ prepare_input,
15
+ parse_union_result,
16
+ )
17
+ from taegis_sdk_python.services.detector_registry.types import *
18
+
19
+ from taegis_sdk_python import GraphQLNoRowsInResultSetError
20
+
21
+ if TYPE_CHECKING: # pragma: no cover
22
+ from taegis_sdk_python.services.detector_registry import DetectorRegistryService
23
+
24
+
25
+ class TaegisSDKDetectorRegistryQuery:
26
+ """Teagis Detector_registry Query operations."""
27
+
28
+ def __init__(self, service: DetectorRegistryService):
29
+ self.service = service
30
+
31
+ def detector(self, id_: str) -> RegisteredDetector:
32
+ """returns registered detector by ID."""
33
+ endpoint = "detector"
34
+
35
+ result = self.service.execute_query(
36
+ endpoint=endpoint,
37
+ variables={
38
+ "id": prepare_input(id_),
39
+ },
40
+ output=build_output_string(RegisteredDetector),
41
+ )
42
+ if result.get(endpoint) is not None:
43
+ return RegisteredDetector.from_dict(result.get(endpoint))
44
+ raise GraphQLNoRowsInResultSetError("for query detector")
45
+
46
+ def detectors(self) -> List[RegisteredDetector]:
47
+ """returns all detectors."""
48
+ endpoint = "detectors"
49
+
50
+ result = self.service.execute_query(
51
+ endpoint=endpoint,
52
+ variables={},
53
+ output=build_output_string(RegisteredDetector),
54
+ )
55
+ if result.get(endpoint) is not None:
56
+ return RegisteredDetector.schema().load(
57
+ [r or {} for r in result.get(endpoint)], many=True
58
+ )
59
+ raise GraphQLNoRowsInResultSetError("for query detectors")
60
+
61
+ def search_detectors(self, input_: SearchDetectors) -> List[RegisteredDetector]:
62
+ """searches detectors given the input criteria."""
63
+ endpoint = "searchDetectors"
64
+
65
+ result = self.service.execute_query(
66
+ endpoint=endpoint,
67
+ variables={
68
+ "input": prepare_input(input_),
69
+ },
70
+ output=build_output_string(RegisteredDetector),
71
+ )
72
+ if result.get(endpoint) is not None:
73
+ return RegisteredDetector.schema().load(
74
+ [r or {} for r in result.get(endpoint)], many=True
75
+ )
76
+ raise GraphQLNoRowsInResultSetError("for query searchDetectors")
77
+
78
+ def detector_by_name(self, display_name: str) -> List[str]:
79
+ """returns ids that match the given registered detector name."""
80
+ endpoint = "detectorByName"
81
+
82
+ result = self.service.execute_query(
83
+ endpoint=endpoint,
84
+ variables={
85
+ "displayName": prepare_input(display_name),
86
+ },
87
+ output="",
88
+ )
89
+ if result.get(endpoint) is not None:
90
+ return result.get(endpoint)
91
+ raise GraphQLNoRowsInResultSetError("for query detectorByName")
@@ -0,0 +1,29 @@
1
+ """DetectorRegistry Subscription."""
2
+ # pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code, wildcard-import, unused-wildcard-import, cyclic-import
3
+
4
+
5
+ # Autogenerated
6
+ # DO NOT MODIFY
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import TYPE_CHECKING, Any, List, Dict, Optional, Tuple, Union
11
+
12
+ from taegis_sdk_python.utils import (
13
+ build_output_string,
14
+ prepare_input,
15
+ parse_union_result,
16
+ )
17
+ from taegis_sdk_python.services.detector_registry.types import *
18
+
19
+ from taegis_sdk_python import GraphQLNoRowsInResultSetError
20
+
21
+ if TYPE_CHECKING: # pragma: no cover
22
+ from taegis_sdk_python.services.detector_registry import DetectorRegistryService
23
+
24
+
25
+ class TaegisSDKDetectorRegistrySubscription:
26
+ """Teagis Detector_registry Subscription operations."""
27
+
28
+ def __init__(self, service: DetectorRegistryService):
29
+ self.service = service
@@ -0,0 +1,89 @@
1
+ """DetectorRegistry Types and Enums."""
2
+ # pylint: disable=no-member, unused-argument, too-many-locals, duplicate-code
3
+
4
+ # Autogenerated
5
+ # DO NOT MODIFY
6
+
7
+ from typing import Optional, List, Dict, Union, Any, Tuple
8
+
9
+
10
+ from enum import Enum
11
+
12
+
13
+ from dataclasses import dataclass, field
14
+ from dataclasses_json import dataclass_json, config
15
+
16
+
17
+ class State(str, Enum):
18
+ """State."""
19
+
20
+ DEPLOYED = "deployed"
21
+ RESEARCH = "research"
22
+ DISABLED = "disabled"
23
+
24
+
25
+ @dataclass_json
26
+ @dataclass(order=True, eq=True, frozen=True)
27
+ class SearchDetectors:
28
+ """SearchDetectors."""
29
+
30
+ ids: Optional[List[str]] = field(default=None, metadata=config(field_name="ids"))
31
+ creator_names: Optional[List[str]] = field(
32
+ default=None, metadata=config(field_name="creatorNames")
33
+ )
34
+ display_names: Optional[List[str]] = field(
35
+ default=None, metadata=config(field_name="displayNames")
36
+ )
37
+ tags: Optional[List[str]] = field(default=None, metadata=config(field_name="tags"))
38
+ maintainers: Optional[List[str]] = field(
39
+ default=None, metadata=config(field_name="maintainers")
40
+ )
41
+ archived: Optional[bool] = field(
42
+ default=None, metadata=config(field_name="archived")
43
+ )
44
+ alerting_rule: Optional[bool] = field(
45
+ default=None, metadata=config(field_name="alertingRule")
46
+ )
47
+ created_on_or_after: Optional[str] = field(
48
+ default=None, metadata=config(field_name="createdOnOrAfter")
49
+ )
50
+ created_before: Optional[str] = field(
51
+ default=None, metadata=config(field_name="createdBefore")
52
+ )
53
+ updated_on_or_after: Optional[str] = field(
54
+ default=None, metadata=config(field_name="updatedOnOrAfter")
55
+ )
56
+ updated_before: Optional[str] = field(
57
+ default=None, metadata=config(field_name="updatedBefore")
58
+ )
59
+
60
+
61
+ @dataclass_json
62
+ @dataclass(order=True, eq=True, frozen=True)
63
+ class RegisteredDetector:
64
+ """RegisteredDetector."""
65
+
66
+ id: Optional[str] = field(default=None, metadata=config(field_name="id"))
67
+ creator_name: Optional[str] = field(
68
+ default=None, metadata=config(field_name="creatorName")
69
+ )
70
+ display_name: Optional[str] = field(
71
+ default=None, metadata=config(field_name="displayName")
72
+ )
73
+ tags: Optional[List[str]] = field(default=None, metadata=config(field_name="tags"))
74
+ maintainers: Optional[List[str]] = field(
75
+ default=None, metadata=config(field_name="maintainers")
76
+ )
77
+ archived: Optional[bool] = field(
78
+ default=None, metadata=config(field_name="archived")
79
+ )
80
+ alerting_rule: Optional[bool] = field(
81
+ default=None, metadata=config(field_name="alertingRule")
82
+ )
83
+ created_at: Optional[str] = field(
84
+ default=None, metadata=config(field_name="createdAt")
85
+ )
86
+ updated_at: Optional[str] = field(
87
+ default=None, metadata=config(field_name="updatedAt")
88
+ )
89
+ state: Optional[State] = field(default=None, metadata=config(field_name="state"))
@@ -83,6 +83,29 @@ class TaegisSDKInvestigations2Mutation:
83
83
  return AddEvidenceToInvestigationResult.from_dict(result.get(endpoint))
84
84
  raise GraphQLNoRowsInResultSetError("for mutation addEvidenceToInvestigation")
85
85
 
86
+ def remove_evidence_from_investigation(
87
+ self, input_: RemoveEvidenceFromInvestigationInput
88
+ ) -> RemoveEvidenceFromInvestigationResult:
89
+ """Remove evidence from an existing investigation
90
+
91
+ This is a background job, it will be pretty quick, but removed alerts/events will likely still be present in the returned investigation
92
+ The processing status will reflect where the the investigation is at in the processing job.
93
+ """
94
+ endpoint = "removeEvidenceFromInvestigation"
95
+
96
+ result = self.service.execute_mutation(
97
+ endpoint=endpoint,
98
+ variables={
99
+ "input": prepare_input(input_),
100
+ },
101
+ output=build_output_string(RemoveEvidenceFromInvestigationResult),
102
+ )
103
+ if result.get(endpoint) is not None:
104
+ return RemoveEvidenceFromInvestigationResult.from_dict(result.get(endpoint))
105
+ raise GraphQLNoRowsInResultSetError(
106
+ "for mutation removeEvidenceFromInvestigation"
107
+ )
108
+
86
109
  def create_investigation_rule(
87
110
  self, input_: CreateInvestigationRuleInput
88
111
  ) -> InvestigationRule:
@@ -43,6 +43,23 @@ class TaegisSDKInvestigations2Query:
43
43
  return InvestigationV2.from_dict(result.get(endpoint))
44
44
  raise GraphQLNoRowsInResultSetError("for query investigationV2")
45
45
 
46
+ def investigations_v2(
47
+ self, arguments: InvestigationsV2Arguments
48
+ ) -> InvestigationsV2:
49
+ """Search investigations."""
50
+ endpoint = "investigationsV2"
51
+
52
+ result = self.service.execute_query(
53
+ endpoint=endpoint,
54
+ variables={
55
+ "arguments": prepare_input(arguments),
56
+ },
57
+ output=build_output_string(InvestigationsV2),
58
+ )
59
+ if result.get(endpoint) is not None:
60
+ return InvestigationsV2.from_dict(result.get(endpoint))
61
+ raise GraphQLNoRowsInResultSetError("for query investigationsV2")
62
+
46
63
  def investigation_rule(
47
64
  self, arguments: InvestigationRuleArguments
48
65
  ) -> InvestigationRule:
@@ -125,6 +125,25 @@ class AddEvidenceToInvestigationInput:
125
125
  )
126
126
 
127
127
 
128
+ @dataclass_json
129
+ @dataclass(order=True, eq=True, frozen=True)
130
+ class RemoveEvidenceFromInvestigationInput:
131
+ """RemoveEvidenceFromInvestigationInput."""
132
+
133
+ investigation_id: Optional[str] = field(
134
+ default=None, metadata=config(field_name="investigationId")
135
+ )
136
+ alerts: Optional[List[str]] = field(
137
+ default=None, metadata=config(field_name="alerts")
138
+ )
139
+ events: Optional[List[str]] = field(
140
+ default=None, metadata=config(field_name="events")
141
+ )
142
+ assets: Optional[List[str]] = field(
143
+ default=None, metadata=config(field_name="assets")
144
+ )
145
+
146
+
128
147
  @dataclass_json
129
148
  @dataclass(order=True, eq=True, frozen=True)
130
149
  class DeleteInvestigationRuleInput:
@@ -152,6 +171,25 @@ class AddEvidenceToInvestigationResult:
152
171
  )
153
172
 
154
173
 
174
+ @dataclass_json
175
+ @dataclass(order=True, eq=True, frozen=True)
176
+ class RemoveEvidenceFromInvestigationResult:
177
+ """RemoveEvidenceFromInvestigationResult."""
178
+
179
+ investigation_id: Optional[str] = field(
180
+ default=None, metadata=config(field_name="investigationId")
181
+ )
182
+ alerts: Optional[List[str]] = field(
183
+ default=None, metadata=config(field_name="alerts")
184
+ )
185
+ events: Optional[List[str]] = field(
186
+ default=None, metadata=config(field_name="events")
187
+ )
188
+ assets: Optional[List[str]] = field(
189
+ default=None, metadata=config(field_name="assets")
190
+ )
191
+
192
+
155
193
  @dataclass_json
156
194
  @dataclass(order=True, eq=True, frozen=True)
157
195
  class CreateInvestigationTemplateInput:
@@ -466,6 +504,9 @@ class CreateInvestigationRuleInput:
466
504
  template_id: Optional[str] = field(
467
505
  default=None, metadata=config(field_name="templateId")
468
506
  )
507
+ response_data: Optional[dict] = field(
508
+ default=None, metadata=config(field_name="responseData")
509
+ )
469
510
  state: Optional[InvestigationRuleState] = field(
470
511
  default=None, metadata=config(field_name="state")
471
512
  )
@@ -514,11 +555,27 @@ class UpdateInvestigationRuleInput:
514
555
  template_id: Optional[str] = field(
515
556
  default=None, metadata=config(field_name="templateId")
516
557
  )
558
+ response_data: Optional[dict] = field(
559
+ default=None, metadata=config(field_name="responseData")
560
+ )
517
561
  state: Optional[InvestigationRuleState] = field(
518
562
  default=None, metadata=config(field_name="state")
519
563
  )
520
564
 
521
565
 
566
+ @dataclass_json
567
+ @dataclass(order=True, eq=True, frozen=True)
568
+ class InvestigationsV2Arguments:
569
+ """InvestigationsV2Arguments."""
570
+
571
+ page: Optional[int] = field(default=None, metadata=config(field_name="page"))
572
+ per_page: Optional[int] = field(default=None, metadata=config(field_name="perPage"))
573
+ cql: Optional[str] = field(default=None, metadata=config(field_name="cql"))
574
+ order_by: Optional[PaginationOrder] = field(
575
+ default=None, metadata=config(field_name="orderBy")
576
+ )
577
+
578
+
522
579
  @dataclass_json
523
580
  @dataclass(order=True, eq=True, frozen=True)
524
581
  class ExportInvestigationResourcesArgument:
@@ -971,6 +1028,19 @@ class InvestigationV2:
971
1028
  )
972
1029
 
973
1030
 
1031
+ @dataclass_json
1032
+ @dataclass(order=True, eq=True, frozen=True)
1033
+ class InvestigationsV2:
1034
+ """InvestigationsV2."""
1035
+
1036
+ total_count: Optional[int] = field(
1037
+ default=None, metadata=config(field_name="totalCount")
1038
+ )
1039
+ investigations: Optional[List[InvestigationV2]] = field(
1040
+ default=None, metadata=config(field_name="investigations")
1041
+ )
1042
+
1043
+
974
1044
  @dataclass_json
975
1045
  @dataclass(order=True, eq=True, frozen=True)
976
1046
  class InvestigationTemplates: