taegis-sdk-python 1.2.20__tar.gz → 1.2.22__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 (254) hide show
  1. {taegis_sdk_python-1.2.20/taegis_sdk_python.egg-info → taegis_sdk_python-1.2.22}/PKG-INFO +1 -1
  2. taegis_sdk_python-1.2.22/taegis_sdk_python/_version.py +1 -0
  3. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/service_core.py +1 -0
  4. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/__init__.py +27 -2
  5. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/types.py +3 -0
  6. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/types.py +24 -11
  7. taegis_sdk_python-1.2.22/taegis_sdk_python/services/datasources/queries.py +125 -0
  8. taegis_sdk_python-1.2.22/taegis_sdk_python/services/datasources/types.py +290 -0
  9. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/types.py +3 -0
  10. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/mutations.py +37 -0
  11. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/queries.py +49 -0
  12. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/types.py +187 -0
  13. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/types.py +6 -0
  14. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/queries.py +15 -0
  15. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/types.py +16 -0
  16. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/queries.py +29 -0
  17. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/types.py +9 -0
  18. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/mutations.py +18 -1
  19. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/types.py +115 -0
  20. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/types.py +6 -0
  21. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22/taegis_sdk_python.egg-info}/PKG-INFO +1 -1
  22. taegis_sdk_python-1.2.20/taegis_sdk_python/_version.py +0 -1
  23. taegis_sdk_python-1.2.20/taegis_sdk_python/services/datasources/queries.py +0 -54
  24. taegis_sdk_python-1.2.20/taegis_sdk_python/services/datasources/types.py +0 -120
  25. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/LICENSE +0 -0
  26. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/MANIFEST.in +0 -0
  27. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/README.md +0 -0
  28. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements-dev.txt +0 -0
  29. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements-test.txt +0 -0
  30. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/requirements.txt +0 -0
  31. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/setup.cfg +0 -0
  32. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/setup.py +0 -0
  33. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/__init__.py +0 -0
  34. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/_consts.py +0 -0
  35. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/authentication.py +0 -0
  36. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/config.py +0 -0
  37. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/errors.py +0 -0
  38. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/__init__.py +0 -0
  39. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/mutations.py +0 -0
  40. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/queries.py +0 -0
  41. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/subscriptions.py +0 -0
  42. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/access_points/types.py +0 -0
  43. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/__init__.py +0 -0
  44. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/mutations.py +0 -0
  45. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/queries.py +0 -0
  46. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/subscriptions.py +0 -0
  47. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/agent/types.py +0 -0
  48. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/__init__.py +0 -0
  49. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/mutations.py +0 -0
  50. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/queries.py +0 -0
  51. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/alerts/subscriptions.py +0 -0
  52. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/__init__.py +0 -0
  53. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/mutations.py +0 -0
  54. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/queries.py +0 -0
  55. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/subscriptions.py +0 -0
  56. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets/types.py +0 -0
  57. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/__init__.py +0 -0
  58. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/mutations.py +0 -0
  59. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/queries.py +0 -0
  60. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/assets2/subscriptions.py +0 -0
  61. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/__init__.py +0 -0
  62. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/mutations.py +0 -0
  63. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/queries.py +0 -0
  64. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/subscriptions.py +0 -0
  65. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/audits/types.py +0 -0
  66. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/__init__.py +0 -0
  67. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/mutations.py +0 -0
  68. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/queries.py +0 -0
  69. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/subscriptions.py +0 -0
  70. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/authz/types.py +0 -0
  71. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/__init__.py +0 -0
  72. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/mutations.py +0 -0
  73. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/queries.py +0 -0
  74. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/subscriptions.py +0 -0
  75. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/byoti/types.py +0 -0
  76. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/__init__.py +0 -0
  77. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/mutations.py +0 -0
  78. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/queries.py +0 -0
  79. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/subscriptions.py +0 -0
  80. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/clients/types.py +0 -0
  81. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/__init__.py +0 -0
  82. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/mutations.py +0 -0
  83. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/queries.py +0 -0
  84. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/subscriptions.py +0 -0
  85. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/collector/types.py +0 -0
  86. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/__init__.py +0 -0
  87. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/mutations.py +0 -0
  88. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/queries.py +0 -0
  89. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/subscriptions.py +0 -0
  90. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/comments/types.py +0 -0
  91. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/__init__.py +0 -0
  92. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/mutations.py +0 -0
  93. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/queries.py +0 -0
  94. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/subscriptions.py +0 -0
  95. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/contracted_endpoint/types.py +0 -0
  96. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/__init__.py +0 -0
  97. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/mutations.py +0 -0
  98. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/datasources/subscriptions.py +0 -0
  99. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/__init__.py +0 -0
  100. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/mutations.py +0 -0
  101. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/queries.py +0 -0
  102. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/subscriptions.py +0 -0
  103. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/detector_registry/types.py +0 -0
  104. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/__init__.py +0 -0
  105. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/mutations.py +0 -0
  106. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/queries.py +0 -0
  107. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/subscriptions.py +0 -0
  108. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_command_manager/types.py +0 -0
  109. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/__init__.py +0 -0
  110. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/mutations.py +0 -0
  111. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/queries.py +0 -0
  112. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/subscriptions.py +0 -0
  113. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/endpoint_management_service/types.py +0 -0
  114. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/__init__.py +0 -0
  115. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/mutations.py +0 -0
  116. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/queries.py +0 -0
  117. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/subscriptions.py +0 -0
  118. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/event_search/types.py +0 -0
  119. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/__init__.py +0 -0
  120. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/mutations.py +0 -0
  121. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/queries.py +0 -0
  122. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/subscriptions.py +0 -0
  123. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/events/types.py +0 -0
  124. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/__init__.py +0 -0
  125. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/mutations.py +0 -0
  126. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/queries.py +0 -0
  127. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/subscriptions.py +0 -0
  128. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/exports/types.py +0 -0
  129. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/__init__.py +0 -0
  130. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/mutations.py +0 -0
  131. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/queries.py +0 -0
  132. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/subscriptions.py +0 -0
  133. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/fast_ioc/types.py +0 -0
  134. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/__init__.py +0 -0
  135. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/mutations.py +0 -0
  136. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/queries.py +0 -0
  137. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/file_info/subscriptions.py +0 -0
  138. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/__init__.py +0 -0
  139. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/mutations.py +0 -0
  140. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/queries.py +0 -0
  141. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/subscriptions.py +0 -0
  142. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/ingest_stats/types.py +0 -0
  143. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/__init__.py +0 -0
  144. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/mutations.py +0 -0
  145. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/queries.py +0 -0
  146. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/subscriptions.py +0 -0
  147. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations/types.py +0 -0
  148. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/__init__.py +0 -0
  149. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/mutations.py +0 -0
  150. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/queries.py +0 -0
  151. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/subscriptions.py +0 -0
  152. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/investigations2/types.py +0 -0
  153. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/__init__.py +0 -0
  154. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/isensor/subscriptions.py +0 -0
  155. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/__init__.py +0 -0
  156. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/mutations.py +0 -0
  157. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/queries.py +0 -0
  158. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/subscriptions.py +0 -0
  159. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/mitre_attack_info/types.py +0 -0
  160. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/__init__.py +0 -0
  161. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/mutations.py +0 -0
  162. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/queries.py +0 -0
  163. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/subscriptions.py +0 -0
  164. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_context/types.py +0 -0
  165. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/__init__.py +0 -0
  166. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/mutations.py +0 -0
  167. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/queries.py +0 -0
  168. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/subscriptions.py +0 -0
  169. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/multi_tenant_ioc/types.py +0 -0
  170. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/__init__.py +0 -0
  171. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/mutations.py +0 -0
  172. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/queries.py +0 -0
  173. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/subscriptions.py +0 -0
  174. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notebooks/types.py +0 -0
  175. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/__init__.py +0 -0
  176. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/mutations.py +0 -0
  177. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/queries.py +0 -0
  178. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/subscriptions.py +0 -0
  179. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/notifications/types.py +0 -0
  180. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/__init__.py +0 -0
  181. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/mutations.py +0 -0
  182. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/queries.py +0 -0
  183. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/subscriptions.py +0 -0
  184. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/preferences/types.py +0 -0
  185. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/__init__.py +0 -0
  186. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/mutations.py +0 -0
  187. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/queries.py +0 -0
  188. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/subscriptions.py +0 -0
  189. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/queries/types.py +0 -0
  190. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/__init__.py +0 -0
  191. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/mutations.py +0 -0
  192. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/queries.py +0 -0
  193. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/subscriptions.py +0 -0
  194. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/roadrunner/types.py +0 -0
  195. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/__init__.py +0 -0
  196. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/mutations.py +0 -0
  197. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/queries.py +0 -0
  198. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/subscriptions.py +0 -0
  199. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/rules/types.py +0 -0
  200. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/__init__.py +0 -0
  201. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/mutations.py +0 -0
  202. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/queries.py +0 -0
  203. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/subscriptions.py +0 -0
  204. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/sharelinks/types.py +0 -0
  205. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/__init__.py +0 -0
  206. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/mutations.py +0 -0
  207. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/queries.py +0 -0
  208. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/subscriptions.py +0 -0
  209. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/subjects/types.py +0 -0
  210. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/__init__.py +0 -0
  211. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/mutations.py +0 -0
  212. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/queries.py +0 -0
  213. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/subscriptions.py +0 -0
  214. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenant_profiles/types.py +0 -0
  215. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/__init__.py +0 -0
  216. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/mutations.py +0 -0
  217. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/queries.py +0 -0
  218. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants/subscriptions.py +0 -0
  219. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/__init__.py +0 -0
  220. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/mutations.py +0 -0
  221. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/queries.py +0 -0
  222. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/subscriptions.py +0 -0
  223. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/tenants4/types.py +0 -0
  224. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/__init__.py +0 -0
  225. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/mutations.py +0 -0
  226. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat/subscriptions.py +0 -0
  227. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/__init__.py +0 -0
  228. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/mutations.py +0 -0
  229. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/queries.py +0 -0
  230. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/subscriptions.py +0 -0
  231. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/threat_score/types.py +0 -0
  232. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/__init__.py +0 -0
  233. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/mutations.py +0 -0
  234. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/queries.py +0 -0
  235. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/subscriptions.py +0 -0
  236. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trigger_action/types.py +0 -0
  237. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/__init__.py +0 -0
  238. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/mutations.py +0 -0
  239. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/trip/subscriptions.py +0 -0
  240. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/__init__.py +0 -0
  241. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/queries.py +0 -0
  242. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/users/subscriptions.py +0 -0
  243. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/__init__.py +0 -0
  244. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/mutations.py +0 -0
  245. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/queries.py +0 -0
  246. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/services/vdr/subscriptions.py +0 -0
  247. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/tokens.py +0 -0
  248. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/transport/__init__.py +0 -0
  249. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/transport/aiohttp_websockets.py +0 -0
  250. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python/utils.py +0 -0
  251. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/SOURCES.txt +0 -0
  252. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/dependency_links.txt +0 -0
  253. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/taegis_sdk_python.egg-info/requires.txt +0 -0
  254. {taegis_sdk_python-1.2.20 → taegis_sdk_python-1.2.22}/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.2.20
3
+ Version: 1.2.22
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.2.22"
@@ -257,6 +257,7 @@ class ServiceCore:
257
257
  proxy=self.service.proxy,
258
258
  proxy_auth=self.service.proxy_auth,
259
259
  proxy_headers=self.service.proxy_headers,
260
+ connect_args={"max_msg_size": self.service.max_message_size},
260
261
  )
261
262
 
262
263
  client = Client(
@@ -88,7 +88,8 @@ class GraphQLService:
88
88
  proxy_headers: Optional[LooseHeaders] = None,
89
89
  trust_env: bool = False,
90
90
  ssl: Optional[Union[SSLContext, Literal[False], Fingerprint]] = None,
91
- execute_timeout: Optional[Union[int, float]] = 30,
91
+ execute_timeout: Optional[Union[int, float]] = 300,
92
+ max_message_size: int = 0,
92
93
  ): # pylint: disable=too-many-statements
93
94
  """
94
95
  GraphQLService
@@ -107,11 +108,29 @@ class GraphQLService:
107
108
  Extra HTTP Headers to be included in API calls
108
109
  schema_expiry: int, optional
109
110
  Expire time for GraphQL Schema Caching in minutes, by default 1
111
+ proxy: str, optional
112
+ Proxy URL for API requests
113
+ Examples:
114
+ http://proxy.example.com:8080
115
+ http://username:password@proxy.example.com:8080
116
+ proxy_auth: aiohttp.BasicAuth, optional
117
+ Examples:
118
+ aiohttp.BasicAuth("username", "password")
119
+ proxy_headers: Optional[LooseHeaders], optional
120
+ Proxy Headers for API requests
121
+ trust_env: bool, optional
122
+ Trust Environment Variables for Proxy Authentication
123
+ ssl: Optional[Union[SSLContext, Literal[False], Fingerprint]], optional
124
+ SSL Context for API requests
125
+ execute_timeout: Optional[Union[int, float]], optional
126
+ Timeout for GraphQL Execute in seconds, by default 30
127
+ max_message_size: int, optional
128
+ Max Message Size for Subscriptions, by default 0
110
129
 
111
130
  Raises
112
131
  ------
113
132
  ValueError
114
- environment must be charlie, delta, or echo
133
+ environment must be charlie, delta, echo, or foxtrot (or equivalent)
115
134
  """
116
135
  self._environments = environments or TAEGIS_ENVIRONMENT_URLS
117
136
  self._environment = environment or list(self._environments)[0]
@@ -143,6 +162,7 @@ class GraphQLService:
143
162
  self._trust_env = trust_env
144
163
 
145
164
  self._execute_timeout = execute_timeout
165
+ self._max_message_size = max_message_size
146
166
 
147
167
  self._access_points = None
148
168
  self._agent = None
@@ -295,6 +315,11 @@ class GraphQLService:
295
315
  """GraphQL Schema Timeout."""
296
316
  return self._context_manager.get("schema_expiry", self._schema_expiry)
297
317
 
318
+ @property
319
+ def max_message_size(self):
320
+ """Max Message Size for Subscriptions."""
321
+ return self._context_manager.get("max_message_size", self._max_message_size)
322
+
298
323
  @property
299
324
  def input_value_deprecation(self):
300
325
  """GraphQL Query Deprecated Input Fields in Schema."""
@@ -2132,6 +2132,9 @@ class AlertsMetadata:
2132
2132
  description: Optional[str] = field(
2133
2133
  default=None, metadata=config(field_name="description")
2134
2134
  )
2135
+ read_only: Optional[bool] = field(
2136
+ default=None, metadata=config(field_name="read_only")
2137
+ )
2135
2138
  creator: Optional[Creator] = field(
2136
2139
  default=None, metadata=config(field_name="creator")
2137
2140
  )
@@ -1338,6 +1338,9 @@ class AssetV2:
1338
1338
  un_installable: Optional[bool] = field(
1339
1339
  default=None, metadata=config(field_name="unInstallable")
1340
1340
  )
1341
+ agent_policy_version: Optional[str] = field(
1342
+ default=None, metadata=config(field_name="agentPolicyVersion")
1343
+ )
1341
1344
  hostnames: Optional[List[HostnameV2]] = field(
1342
1345
  default=None, metadata=config(field_name="hostnames")
1343
1346
  )
@@ -1381,17 +1384,6 @@ class BulkReconnectNativeAssetsInput:
1381
1384
  )
1382
1385
 
1383
1386
 
1384
- @dataclass_json
1385
- @dataclass(order=True, eq=True, frozen=True)
1386
- class BulkUninstallNativeAssetsInput:
1387
- """BulkUninstallNativeAssetsInput."""
1388
-
1389
- reason: Optional[str] = field(default=None, metadata=config(field_name="reason"))
1390
- where: Optional[AssetWhereInputV2] = field(
1391
- default=None, metadata=config(field_name="where")
1392
- )
1393
-
1394
-
1395
1387
  @dataclass_json
1396
1388
  @dataclass(order=True, eq=True, frozen=True)
1397
1389
  class AssetsV2:
@@ -1569,3 +1561,24 @@ class BulkUpdateTagsForEndpointsInputV2:
1569
1561
  tags: Optional[List[KVTagInputV2]] = field(
1570
1562
  default=None, metadata=config(field_name="tags")
1571
1563
  )
1564
+
1565
+
1566
+ @dataclass_json
1567
+ @dataclass(order=True, eq=True, frozen=True)
1568
+ class BulkUninstallNativeAssetsInput:
1569
+ """BulkUninstallNativeAssetsInput."""
1570
+
1571
+ reason: Optional[str] = field(default=None, metadata=config(field_name="reason"))
1572
+ agent_count: Optional[int] = field(
1573
+ default=None, metadata=config(field_name="agentCount")
1574
+ )
1575
+ filter: Optional[AssetFilter] = field(
1576
+ default=None, metadata=config(field_name="filter")
1577
+ )
1578
+ where: Optional[AssetWhereInputV2] = field(
1579
+ default=None,
1580
+ metadata=config(
1581
+ metadata={"deprecated": True, "deprecation_reason": "use filter.where"},
1582
+ field_name="where",
1583
+ ),
1584
+ )
@@ -0,0 +1,125 @@
1
+ """Datasources 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
+ import logging
11
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
12
+
13
+ from taegis_sdk_python import GraphQLNoRowsInResultSetError
14
+ from taegis_sdk_python._consts import TaegisEnum
15
+ from taegis_sdk_python.services.datasources.types import *
16
+ from taegis_sdk_python.utils import (
17
+ build_output_string,
18
+ parse_union_result,
19
+ prepare_input,
20
+ )
21
+
22
+ if TYPE_CHECKING: # pragma: no cover
23
+ from taegis_sdk_python.services.datasources import DatasourcesService
24
+
25
+
26
+ log = logging.getLogger(__name__)
27
+
28
+
29
+ class TaegisSDKDatasourcesQuery:
30
+ """Taegis Datasources Query operations."""
31
+
32
+ def __init__(self, service: DatasourcesService):
33
+ self.service = service
34
+
35
+ def get_data_source_last_seen_asset(
36
+ self, input_: Optional[GetDataSourceInput] = None
37
+ ) -> List[LastSeenAsset]:
38
+ """Fetches the last seen data about all data sources associated with a tenant based on input parameters.
39
+ It provides ability to filter the data by collectorId and sourceId. Authorization permission is
40
+ required with read access to the collector object.."""
41
+ endpoint = "getDataSourceLastSeenAsset"
42
+
43
+ result = self.service.execute_query(
44
+ endpoint=endpoint,
45
+ variables={
46
+ "input": prepare_input(input_),
47
+ },
48
+ output=build_output_string(LastSeenAsset),
49
+ )
50
+ if result.get(endpoint) is not None:
51
+ return LastSeenAsset.schema().load(
52
+ [r or {} for r in result.get(endpoint)], many=True
53
+ )
54
+ raise GraphQLNoRowsInResultSetError("for query getDataSourceLastSeenAsset")
55
+
56
+ def get_data_source_last_seen_assets_v2(
57
+ self,
58
+ first: Optional[int] = None,
59
+ last: Optional[int] = None,
60
+ after: Optional[str] = None,
61
+ before: Optional[str] = None,
62
+ filter_: Optional[DataSourceAssetsFilter] = None,
63
+ sort: Optional[Union[LastSeenAssetsSort, TaegisEnum]] = None,
64
+ ) -> LastSeenAssets:
65
+ """Fetches the last seen data about all data sources associated with a tenant based on input parameters.
66
+ It provides ability to filter the data by collectorId and sourceId. The data returned by this query
67
+ is eventually consistent. Consequently, actions such as deleting an asset may not be immediately reflected in the
68
+ result set. Authorization permission is required with read access to the collector object.
69
+ It also supports forward and backward pagination.."""
70
+ endpoint = "getDataSourceLastSeenAssetsV2"
71
+
72
+ result = self.service.execute_query(
73
+ endpoint=endpoint,
74
+ variables={
75
+ "first": prepare_input(first),
76
+ "last": prepare_input(last),
77
+ "after": prepare_input(after),
78
+ "before": prepare_input(before),
79
+ "filter": prepare_input(filter_),
80
+ "sort": prepare_input(sort),
81
+ },
82
+ output=build_output_string(LastSeenAssets),
83
+ )
84
+ if result.get(endpoint) is not None:
85
+ return LastSeenAssets.from_dict(result.get(endpoint))
86
+ raise GraphQLNoRowsInResultSetError("for query getDataSourceLastSeenAssetsV2")
87
+
88
+ def get_data_source_last_seen_asset_filter_values(
89
+ self, input_: List[Union[FilterCriteria, TaegisEnum]]
90
+ ) -> List[FilterValues]:
91
+ """Provides clients with the ability to retrieve the possible values for a given filter criteria. Note that unique
92
+ values will be returned, for enum types, only those observed in the data set will be returned.."""
93
+ endpoint = "getDataSourceLastSeenAssetFilterValues"
94
+
95
+ result = self.service.execute_query(
96
+ endpoint=endpoint,
97
+ variables={
98
+ "input": prepare_input(input_),
99
+ },
100
+ output=build_output_string(FilterValues),
101
+ )
102
+ if result.get(endpoint) is not None:
103
+ return FilterValues.schema().load(
104
+ [r or {} for r in result.get(endpoint)], many=True
105
+ )
106
+ raise GraphQLNoRowsInResultSetError(
107
+ "for query getDataSourceLastSeenAssetFilterValues"
108
+ )
109
+
110
+ def data_source_last_seen_assets_query(
111
+ self, input_: LastSeenQueryInput
112
+ ) -> LastSeenAssetsQueryResult:
113
+ """Allows querying last seen data for assets using CQL."""
114
+ endpoint = "dataSourceLastSeenAssetsQuery"
115
+
116
+ result = self.service.execute_query(
117
+ endpoint=endpoint,
118
+ variables={
119
+ "input": prepare_input(input_),
120
+ },
121
+ output=build_output_string(LastSeenAssetsQueryResult),
122
+ )
123
+ if result.get(endpoint) is not None:
124
+ return LastSeenAssetsQueryResult.from_dict(result.get(endpoint))
125
+ raise GraphQLNoRowsInResultSetError("for query dataSourceLastSeenAssetsQuery")
@@ -0,0 +1,290 @@
1
+ """Datasources 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 dataclasses import dataclass, field
8
+
9
+ from enum import Enum
10
+
11
+ from typing import Any, Dict, List, Optional, Tuple, Union
12
+
13
+ from dataclasses_json import config, dataclass_json
14
+
15
+
16
+ from taegis_sdk_python._consts import TaegisEnum
17
+ from taegis_sdk_python.utils import encode_enum, decode_enum
18
+
19
+
20
+ class AuthzObject(str, Enum):
21
+ """AuthzObject."""
22
+
23
+ COLLECTOR = "COLLECTOR"
24
+
25
+
26
+ class AuthzAction(str, Enum):
27
+ """AuthzAction."""
28
+
29
+ READ = "READ"
30
+ DELETE = "DELETE"
31
+
32
+
33
+ class HealthState(str, Enum):
34
+ """HealthState."""
35
+
36
+ HEALTHY = "HEALTHY"
37
+ NO_DATA = "NO_DATA"
38
+ WARNING = "WARNING"
39
+
40
+
41
+ class FilterCriteria(str, Enum):
42
+ """FilterCriteria."""
43
+
44
+ SOURCE_ID = "SOURCE_ID"
45
+ STATUS = "STATUS"
46
+ TYPE = "TYPE"
47
+ SENSOR_TYPE = "SENSOR_TYPE"
48
+ XDR_RELAY = "XDR_RELAY"
49
+
50
+
51
+ class LastSeenAssetsSort(str, Enum):
52
+ """LastSeenAssetsSort."""
53
+
54
+ SOURCE_ID_ASC = "SOURCE_ID_ASC"
55
+ SOURCE_ID_DESC = "SOURCE_ID_DESC"
56
+ STATUS_ASC = "STATUS_ASC"
57
+ STATUS_DESC = "STATUS_DESC"
58
+ LOG_LAST_SEEN_ASC = "LOG_LAST_SEEN_ASC"
59
+ LOG_LAST_SEEN_DESC = "LOG_LAST_SEEN_DESC"
60
+ TYPE_ASC = "TYPE_ASC"
61
+ TYPE_DESC = "TYPE_DESC"
62
+ SENSOR_TYPE_ASC = "SENSOR_TYPE_ASC"
63
+ SENSOR_TYPE_DESC = "SENSOR_TYPE_DESC"
64
+ COLLECTOR_ID_ASC = "COLLECTOR_ID_ASC"
65
+ COLLECTOR_ID_DESC = "COLLECTOR_ID_DESC"
66
+
67
+
68
+ @dataclass_json
69
+ @dataclass(order=True, eq=True, frozen=True)
70
+ class DeletedAsset:
71
+ """DeletedAsset."""
72
+
73
+ source_id: Optional[str] = field(
74
+ default=None, metadata=config(field_name="sourceId")
75
+ )
76
+ collector_id: Optional[str] = field(
77
+ default=None, metadata=config(field_name="collectorID")
78
+ )
79
+ successful: Optional[bool] = field(
80
+ default=None, metadata=config(field_name="successful")
81
+ )
82
+
83
+
84
+ @dataclass_json
85
+ @dataclass(order=True, eq=True, frozen=True)
86
+ class DeleteAssetInput:
87
+ """DeleteAssetInput."""
88
+
89
+ source_id: Optional[str] = field(
90
+ default=None, metadata=config(field_name="sourceId")
91
+ )
92
+ collector_id: Optional[str] = field(
93
+ default=None, metadata=config(field_name="collectorId")
94
+ )
95
+
96
+
97
+ @dataclass_json
98
+ @dataclass(order=True, eq=True, frozen=True)
99
+ class GetDataSourceInput:
100
+ """GetDataSourceInput."""
101
+
102
+ collector_id: Optional[str] = field(
103
+ default=None, metadata=config(field_name="collectorId")
104
+ )
105
+ source_id: Optional[str] = field(
106
+ default=None, metadata=config(field_name="sourceId")
107
+ )
108
+
109
+
110
+ @dataclass_json
111
+ @dataclass(order=True, eq=True, frozen=True)
112
+ class PageInfo:
113
+ """PageInfo."""
114
+
115
+ end_cursor: Optional[str] = field(
116
+ default=None, metadata=config(field_name="endCursor")
117
+ )
118
+ start_cursor: Optional[str] = field(
119
+ default=None, metadata=config(field_name="startCursor")
120
+ )
121
+ has_next_page: Optional[bool] = field(
122
+ default=None, metadata=config(field_name="hasNextPage")
123
+ )
124
+ has_previous_page: Optional[bool] = field(
125
+ default=None, metadata=config(field_name="hasPreviousPage")
126
+ )
127
+
128
+
129
+ @dataclass_json
130
+ @dataclass(order=True, eq=True, frozen=True)
131
+ class QLPageCursor:
132
+ """QLPageCursor."""
133
+
134
+ next_cursor: Optional[str] = field(
135
+ default=None, metadata=config(field_name="nextCursor")
136
+ )
137
+ previous_cursor: Optional[str] = field(
138
+ default=None, metadata=config(field_name="previousCursor")
139
+ )
140
+ cursor: Optional[str] = field(default=None, metadata=config(field_name="cursor"))
141
+ count: Optional[int] = field(default=None, metadata=config(field_name="count"))
142
+ total_count: Optional[int] = field(
143
+ default=None, metadata=config(field_name="totalCount")
144
+ )
145
+
146
+
147
+ @dataclass_json
148
+ @dataclass(order=True, eq=True, frozen=True)
149
+ class DataSourcesWhereInput:
150
+ """DataSourcesWhereInput."""
151
+
152
+ source_id: Optional[List[str]] = field(
153
+ default=None, metadata=config(field_name="sourceId")
154
+ )
155
+ type: Optional[List[str]] = field(default=None, metadata=config(field_name="type"))
156
+ sensor_type: Optional[List[str]] = field(
157
+ default=None, metadata=config(field_name="sensorType")
158
+ )
159
+ collector_id: Optional[List[str]] = field(
160
+ default=None, metadata=config(field_name="collectorId")
161
+ )
162
+
163
+
164
+ @dataclass_json
165
+ @dataclass(order=True, eq=True, frozen=True)
166
+ class LastSeenQueryInput:
167
+ """LastSeenQueryInput."""
168
+
169
+ ql: Optional[str] = field(default=None, metadata=config(field_name="ql"))
170
+ cursor: Optional[str] = field(default=None, metadata=config(field_name="cursor"))
171
+ count: Optional[int] = field(default=None, metadata=config(field_name="count"))
172
+
173
+
174
+ @dataclass_json
175
+ @dataclass(order=True, eq=True, frozen=True)
176
+ class FilterValue:
177
+ """FilterValue."""
178
+
179
+ value: Optional[str] = field(default=None, metadata=config(field_name="value"))
180
+
181
+
182
+ @dataclass_json
183
+ @dataclass(order=True, eq=True, frozen=True)
184
+ class ClusterIdentity:
185
+ """ClusterIdentity."""
186
+
187
+ id: Optional[str] = field(default=None, metadata=config(field_name="id"))
188
+ name: Optional[str] = field(default=None, metadata=config(field_name="name"))
189
+
190
+
191
+ @dataclass_json
192
+ @dataclass(order=True, eq=True, frozen=True)
193
+ class FilterValues:
194
+ """FilterValues."""
195
+
196
+ filter: Optional[Union[FilterCriteria, TaegisEnum]] = field(
197
+ default=None,
198
+ metadata=config(
199
+ encoder=encode_enum,
200
+ decoder=lambda x: decode_enum(FilterCriteria, x),
201
+ field_name="filter",
202
+ ),
203
+ )
204
+
205
+
206
+ @dataclass_json
207
+ @dataclass(order=True, eq=True, frozen=True)
208
+ class LastSeenAsset:
209
+ """LastSeenAsset."""
210
+
211
+ source_id: Optional[str] = field(
212
+ default=None, metadata=config(field_name="sourceId")
213
+ )
214
+ service: Optional[str] = field(default=None, metadata=config(field_name="service"))
215
+ sensor_type: Optional[str] = field(
216
+ default=None, metadata=config(field_name="sensorType")
217
+ )
218
+ collector_id: Optional[str] = field(
219
+ default=None, metadata=config(field_name="collectorID")
220
+ )
221
+ last_seen: Optional[int] = field(
222
+ default=None, metadata=config(field_name="lastSeen")
223
+ )
224
+ health: Optional[Union[HealthState, TaegisEnum]] = field(
225
+ default=None,
226
+ metadata=config(
227
+ encoder=encode_enum,
228
+ decoder=lambda x: decode_enum(HealthState, x),
229
+ field_name="health",
230
+ ),
231
+ )
232
+ collector: Optional[ClusterIdentity] = field(
233
+ default=None, metadata=config(field_name="collector")
234
+ )
235
+
236
+
237
+ @dataclass_json
238
+ @dataclass(order=True, eq=True, frozen=True)
239
+ class DataSourceAssetsFilter:
240
+ """DataSourceAssetsFilter."""
241
+
242
+ status: Optional[List[Union[HealthState, TaegisEnum]]] = field(
243
+ default=None,
244
+ metadata=config(
245
+ encoder=encode_enum,
246
+ decoder=lambda x: decode_enum(HealthState, x),
247
+ field_name="status",
248
+ ),
249
+ )
250
+ where: Optional[DataSourcesWhereInput] = field(
251
+ default=None, metadata=config(field_name="where")
252
+ )
253
+
254
+
255
+ @dataclass_json
256
+ @dataclass(order=True, eq=True, frozen=True)
257
+ class LastSeenAssets:
258
+ """LastSeenAssets."""
259
+
260
+ total_count: Optional[int] = field(
261
+ default=None, metadata=config(field_name="totalCount")
262
+ )
263
+ assets: Optional[List[LastSeenAsset]] = field(
264
+ default=None, metadata=config(field_name="assets")
265
+ )
266
+ page_info: Optional[PageInfo] = field(
267
+ default=None, metadata=config(field_name="pageInfo")
268
+ )
269
+
270
+
271
+ @dataclass_json
272
+ @dataclass(order=True, eq=True, frozen=True)
273
+ class LastSeenAssetsQueryResult:
274
+ """LastSeenAssetsQueryResult."""
275
+
276
+ aggregations: Optional[List[dict]] = field(
277
+ default=None, metadata=config(field_name="aggregations")
278
+ )
279
+ assets: Optional[List[LastSeenAsset]] = field(
280
+ default=None, metadata=config(field_name="assets")
281
+ )
282
+ pagination: Optional[QLPageCursor] = field(
283
+ default=None, metadata=config(field_name="pagination")
284
+ )
285
+
286
+
287
+ FilterValueResponse = Union[
288
+ FilterValue,
289
+ ClusterIdentity,
290
+ ]
@@ -840,6 +840,9 @@ class HostDetails:
840
840
  class FileMarkingStatus:
841
841
  """FileMarkingStatus."""
842
842
 
843
+ file_resource: Optional[str] = field(
844
+ default=None, metadata=config(field_name="fileResource")
845
+ )
843
846
  explanation: Optional[str] = field(
844
847
  default=None, metadata=config(field_name="explanation")
845
848
  )
@@ -139,3 +139,40 @@ class TaegisSDKIsensorMutation:
139
139
  raise GraphQLNoRowsInResultSetError(
140
140
  "for mutation iSensorRuleVariableCustomizations"
141
141
  )
142
+
143
+ def ndr_save_maintenance_window(
144
+ self, input_: NdrMaintenanceWindowInput
145
+ ) -> NdrMaintenanceWindowResult:
146
+ """Create a new ndr device maintenance window of a given input."""
147
+ endpoint = "ndrSaveMaintenanceWindow"
148
+
149
+ result = self.service.execute_mutation(
150
+ endpoint=endpoint,
151
+ variables={
152
+ "input": prepare_input(input_),
153
+ },
154
+ output=build_output_string(NdrMaintenanceWindowResult),
155
+ )
156
+ if result.get(endpoint) is not None:
157
+ return NdrMaintenanceWindowResult.from_dict(result.get(endpoint))
158
+ raise GraphQLNoRowsInResultSetError("for mutation ndrSaveMaintenanceWindow")
159
+
160
+ def ndr_defer_maintenance_event_device(
161
+ self, id_: str, idn: str
162
+ ) -> NdrDeferEventDeviceResult:
163
+ """Defer Event Device event for given id."""
164
+ endpoint = "ndrDeferMaintenanceEventDevice"
165
+
166
+ result = self.service.execute_mutation(
167
+ endpoint=endpoint,
168
+ variables={
169
+ "id": prepare_input(id_),
170
+ "idn": prepare_input(idn),
171
+ },
172
+ output=build_output_string(NdrDeferEventDeviceResult),
173
+ )
174
+ if result.get(endpoint) is not None:
175
+ return NdrDeferEventDeviceResult.from_dict(result.get(endpoint))
176
+ raise GraphQLNoRowsInResultSetError(
177
+ "for mutation ndrDeferMaintenanceEventDevice"
178
+ )
@@ -45,6 +45,21 @@ class TaegisSDKIsensorQuery:
45
45
  )
46
46
  raise GraphQLNoRowsInResultSetError("for query iSensorDetails")
47
47
 
48
+ def i_sensor_details_by_id(self, id_: str) -> IsensorDetail:
49
+ """Get NDR overview data."""
50
+ endpoint = "iSensorDetailsByID"
51
+
52
+ result = self.service.execute_query(
53
+ endpoint=endpoint,
54
+ variables={
55
+ "id": prepare_input(id_),
56
+ },
57
+ output=build_output_string(IsensorDetail),
58
+ )
59
+ if result.get(endpoint) is not None:
60
+ return IsensorDetail.from_dict(result.get(endpoint))
61
+ raise GraphQLNoRowsInResultSetError("for query iSensorDetailsByID")
62
+
48
63
  def i_sensor_firewall_rules(self, id_: str) -> IsensorFirewallRules:
49
64
  """Get iSensor firewall rules."""
50
65
  endpoint = "iSensorFirewallRules"
@@ -170,3 +185,37 @@ class TaegisSDKIsensorQuery:
170
185
  if result.get(endpoint) is not None:
171
186
  return ISensorArtifact.from_dict(result.get(endpoint))
172
187
  raise GraphQLNoRowsInResultSetError("for query iSensorChangeMgmtReportLocation")
188
+
189
+ def ndr_maintenance_windows(self, idn: str) -> List[NdrMaintenanceWindowResult]:
190
+ """Get NDR Device Maintenance window."""
191
+ endpoint = "ndrMaintenanceWindows"
192
+
193
+ result = self.service.execute_query(
194
+ endpoint=endpoint,
195
+ variables={
196
+ "idn": prepare_input(idn),
197
+ },
198
+ output=build_output_string(NdrMaintenanceWindowResult),
199
+ )
200
+ if result.get(endpoint) is not None:
201
+ return NdrMaintenanceWindowResult.schema().load(
202
+ [r or {} for r in result.get(endpoint)], many=True
203
+ )
204
+ raise GraphQLNoRowsInResultSetError("for query ndrMaintenanceWindows")
205
+
206
+ def ndr_maintenance_event_devices(self, idn: str) -> List[NdrEventDeviceResult]:
207
+ """Get Upcoming NDR EventDevice Events scheduled for idn."""
208
+ endpoint = "ndrMaintenanceEventDevices"
209
+
210
+ result = self.service.execute_query(
211
+ endpoint=endpoint,
212
+ variables={
213
+ "idn": prepare_input(idn),
214
+ },
215
+ output=build_output_string(NdrEventDeviceResult),
216
+ )
217
+ if result.get(endpoint) is not None:
218
+ return NdrEventDeviceResult.schema().load(
219
+ [r or {} for r in result.get(endpoint)], many=True
220
+ )
221
+ raise GraphQLNoRowsInResultSetError("for query ndrMaintenanceEventDevices")