crowdstrike-falconpy 1.3.0.dev10__tar.gz → 1.3.0.dev12__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 (260) hide show
  1. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/AUTHORS.md +1 -0
  2. {crowdstrike-falconpy-1.3.0.dev10/src/crowdstrike_falconpy.egg-info → crowdstrike-falconpy-1.3.0.dev12}/PKG-INFO +1 -1
  3. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12/src/crowdstrike_falconpy.egg-info}/PKG-INFO +1 -1
  4. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/SOURCES.txt +58 -1
  5. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request.py +9 -12
  6. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_behavior.py +24 -24
  7. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_connection.py +6 -13
  8. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_meta.py +6 -12
  9. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_payloads.py +4 -13
  10. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_validator.py +8 -15
  11. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_bearer_token.py +17 -22
  12. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_falcon_interface.py +22 -27
  13. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_interface_config.py +8 -22
  14. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_constant/__init__.py +1 -1
  15. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_log/_facility.py +5 -10
  16. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/__base_resource.py +4 -9
  17. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_base_dictionary.py +12 -11
  18. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_response_component.py +4 -9
  19. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_result.py +12 -16
  20. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/_base_service_class.py +21 -33
  21. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/_service_class.py +19 -25
  22. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_functions.py +2 -2
  23. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_version.py +1 -1
  24. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/api_complete.py +3 -0
  25. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/debug.py +0 -24
  26. crowdstrike-falconpy-1.3.0.dev12/tests/test_alerts.py +70 -0
  27. crowdstrike-falconpy-1.3.0.dev12/tests/test_authentications.py +321 -0
  28. crowdstrike-falconpy-1.3.0.dev12/tests/test_authorization.py +298 -0
  29. crowdstrike-falconpy-1.3.0.dev12/tests/test_cloud_connect_aws.py +217 -0
  30. crowdstrike-falconpy-1.3.0.dev12/tests/test_cspm_registration.py +133 -0
  31. crowdstrike-falconpy-1.3.0.dev12/tests/test_custom_ioa.py +92 -0
  32. crowdstrike-falconpy-1.3.0.dev12/tests/test_d4c_registration.py +155 -0
  33. crowdstrike-falconpy-1.3.0.dev12/tests/test_detects.py +145 -0
  34. crowdstrike-falconpy-1.3.0.dev12/tests/test_device_control_policies.py +145 -0
  35. crowdstrike-falconpy-1.3.0.dev12/tests/test_discover.py +77 -0
  36. crowdstrike-falconpy-1.3.0.dev12/tests/test_event_streams.py +111 -0
  37. crowdstrike-falconpy-1.3.0.dev12/tests/test_falcon_complete_dashboard.py +110 -0
  38. crowdstrike-falconpy-1.3.0.dev12/tests/test_falcon_container.py +63 -0
  39. crowdstrike-falconpy-1.3.0.dev12/tests/test_falconx_sandbox.py +83 -0
  40. crowdstrike-falconpy-1.3.0.dev12/tests/test_fdr.py +36 -0
  41. crowdstrike-falconpy-1.3.0.dev12/tests/test_filevantage.py +40 -0
  42. crowdstrike-falconpy-1.3.0.dev12/tests/test_firewall_management.py +253 -0
  43. crowdstrike-falconpy-1.3.0.dev12/tests/test_firewall_policies.py +68 -0
  44. crowdstrike-falconpy-1.3.0.dev12/tests/test_host_group.py +141 -0
  45. crowdstrike-falconpy-1.3.0.dev12/tests/test_hosts.py +284 -0
  46. crowdstrike-falconpy-1.3.0.dev12/tests/test_identity_protection.py +70 -0
  47. crowdstrike-falconpy-1.3.0.dev12/tests/test_incidents.py +112 -0
  48. crowdstrike-falconpy-1.3.0.dev12/tests/test_installation_tokens.py +103 -0
  49. crowdstrike-falconpy-1.3.0.dev12/tests/test_intel.py +63 -0
  50. crowdstrike-falconpy-1.3.0.dev12/tests/test_ioa_exclusions.py +71 -0
  51. crowdstrike-falconpy-1.3.0.dev12/tests/test_ioc.py +83 -0
  52. crowdstrike-falconpy-1.3.0.dev12/tests/test_iocs.py +63 -0
  53. crowdstrike-falconpy-1.3.0.dev12/tests/test_kubernetes_protection.py +55 -0
  54. crowdstrike-falconpy-1.3.0.dev12/tests/test_malquery.py +90 -0
  55. crowdstrike-falconpy-1.3.0.dev12/tests/test_message_center.py +100 -0
  56. crowdstrike-falconpy-1.3.0.dev12/tests/test_ml_exclusions.py +59 -0
  57. crowdstrike-falconpy-1.3.0.dev12/tests/test_mobile_enrollment.py +30 -0
  58. crowdstrike-falconpy-1.3.0.dev12/tests/test_mssp.py +64 -0
  59. crowdstrike-falconpy-1.3.0.dev12/tests/test_ods.py +126 -0
  60. crowdstrike-falconpy-1.3.0.dev12/tests/test_overwatch_dashboard.py +64 -0
  61. crowdstrike-falconpy-1.3.0.dev12/tests/test_prevention_policy.py +144 -0
  62. crowdstrike-falconpy-1.3.0.dev12/tests/test_quarantine.py +43 -0
  63. crowdstrike-falconpy-1.3.0.dev12/tests/test_quick_scan.py +78 -0
  64. crowdstrike-falconpy-1.3.0.dev12/tests/test_real_time_response.py +144 -0
  65. crowdstrike-falconpy-1.3.0.dev12/tests/test_real_time_response_admin.py +161 -0
  66. crowdstrike-falconpy-1.3.0.dev12/tests/test_recon.py +114 -0
  67. crowdstrike-falconpy-1.3.0.dev12/tests/test_report_executions.py +44 -0
  68. crowdstrike-falconpy-1.3.0.dev12/tests/test_response_policies.py +76 -0
  69. crowdstrike-falconpy-1.3.0.dev12/tests/test_result_object.py +728 -0
  70. crowdstrike-falconpy-1.3.0.dev12/tests/test_sample_uploads.py +156 -0
  71. crowdstrike-falconpy-1.3.0.dev12/tests/test_scheduled_reports.py +43 -0
  72. crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_download.py +106 -0
  73. crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_update_policy.py +195 -0
  74. crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_visibility_exclusions.py +56 -0
  75. crowdstrike-falconpy-1.3.0.dev12/tests/test_service_class.py +378 -0
  76. crowdstrike-falconpy-1.3.0.dev12/tests/test_spotlight_evaluation_logic.py +77 -0
  77. crowdstrike-falconpy-1.3.0.dev12/tests/test_spotlight_vulnerabilities.py +87 -0
  78. crowdstrike-falconpy-1.3.0.dev12/tests/test_tailored_intelligence.py +48 -0
  79. crowdstrike-falconpy-1.3.0.dev12/tests/test_timeout.py +124 -0
  80. crowdstrike-falconpy-1.3.0.dev12/tests/test_uber_api_complete.py +371 -0
  81. crowdstrike-falconpy-1.3.0.dev12/tests/test_user_management.py +204 -0
  82. crowdstrike-falconpy-1.3.0.dev12/tests/test_zero_trust_assessment.py +50 -0
  83. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/LICENSE +0 -0
  84. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/README.md +0 -0
  85. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/setup.cfg +0 -0
  86. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/setup.py +0 -0
  87. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/dependency_links.txt +0 -0
  88. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/requires.txt +0 -0
  89. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/top_level.txt +0 -0
  90. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/__init__.py +0 -0
  91. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/__init__.py +0 -0
  92. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/__init__.py +0 -0
  93. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_base_falcon_auth.py +0 -0
  94. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_uber_interface.py +0 -0
  95. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/__init__.py +0 -0
  96. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_alerts.py +0 -0
  97. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_cloud_connect_aws.py +0 -0
  98. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_cspm_registration.py +0 -0
  99. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_custom_ioa.py +0 -0
  100. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_d4c_registration.py +0 -0
  101. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_detects.py +0 -0
  102. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_device_control_policies.py +0 -0
  103. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_discover.py +0 -0
  104. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_event_streams.py +0 -0
  105. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falcon_complete_dashboard.py +0 -0
  106. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falcon_container.py +0 -0
  107. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falconx_sandbox.py +0 -0
  108. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_fdr.py +0 -0
  109. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_filevantage.py +0 -0
  110. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_firewall_management.py +0 -0
  111. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_firewall_policies.py +0 -0
  112. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_host_group.py +0 -0
  113. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_hosts.py +0 -0
  114. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_identity_protection.py +0 -0
  115. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_incidents.py +0 -0
  116. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_installation_tokens.py +0 -0
  117. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_intel.py +0 -0
  118. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ioa_exclusions.py +0 -0
  119. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ioc.py +0 -0
  120. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_iocs.py +0 -0
  121. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_kubernetes_protection.py +0 -0
  122. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_malquery.py +0 -0
  123. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_message_center.py +0 -0
  124. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ml_exclusions.py +0 -0
  125. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_mobile_enrollment.py +0 -0
  126. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_mssp.py +0 -0
  127. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_oauth2.py +0 -0
  128. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ods.py +0 -0
  129. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_overwatch_dashboard.py +0 -0
  130. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_prevention_policies.py +0 -0
  131. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_quarantine.py +0 -0
  132. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_quick_scan.py +0 -0
  133. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_real_time_response.py +0 -0
  134. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_real_time_response_admin.py +0 -0
  135. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_recon.py +0 -0
  136. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_report_executions.py +0 -0
  137. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_response_policies.py +0 -0
  138. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sample_uploads.py +0 -0
  139. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_scheduled_reports.py +0 -0
  140. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_download.py +0 -0
  141. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_update_policies.py +0 -0
  142. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_visibility_exclusions.py +0 -0
  143. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_spotlight_evaluation_logic.py +0 -0
  144. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_spotlight_vulnerabilities.py +0 -0
  145. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_tailored_intelligence.py +0 -0
  146. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_user_management.py +0 -0
  147. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_zero_trust_assessment.py +0 -0
  148. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/__init__.py +0 -0
  149. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_custom_ioa.py +0 -0
  150. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_d4c_registration.py +0 -0
  151. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_discover.py +0 -0
  152. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_fdr.py +0 -0
  153. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_firewall_management.py +0 -0
  154. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_hosts.py +0 -0
  155. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_identity_protection.py +0 -0
  156. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_installation_tokens.py +0 -0
  157. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_ioc.py +0 -0
  158. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_iocs.py +0 -0
  159. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_ods.py +0 -0
  160. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_real_time_response.py +0 -0
  161. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_real_time_response_admin.py +0 -0
  162. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_report_executions.py +0 -0
  163. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_scheduled_reports.py +0 -0
  164. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_zero_trust_assessment.py +0 -0
  165. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/__init__.py +0 -0
  166. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_base_url.py +0 -0
  167. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_container_base_url.py +0 -0
  168. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_token_fail_reason.py +0 -0
  169. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/__init__.py +0 -0
  170. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/_exceptions.py +0 -0
  171. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/_warnings.py +0 -0
  172. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_log/__init__.py +0 -0
  173. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/__init__.py +0 -0
  174. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_alerts.py +0 -0
  175. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_cloud_connect_aws.py +0 -0
  176. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_container.py +0 -0
  177. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_cspm_registration.py +0 -0
  178. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_d4c_registration.py +0 -0
  179. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_detects.py +0 -0
  180. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_device_control_policy.py +0 -0
  181. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_falconx.py +0 -0
  182. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_firewall.py +0 -0
  183. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_generic.py +0 -0
  184. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_host_group.py +0 -0
  185. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_incidents.py +0 -0
  186. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ioa.py +0 -0
  187. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ioc.py +0 -0
  188. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_malquery.py +0 -0
  189. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_message_center.py +0 -0
  190. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_mssp.py +0 -0
  191. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ods.py +0 -0
  192. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_prevention_policy.py +0 -0
  193. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_real_time_response.py +0 -0
  194. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_recon.py +0 -0
  195. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_reports.py +0 -0
  196. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_response_policy.py +0 -0
  197. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_sample_uploads.py +0 -0
  198. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_sensor_update_policy.py +0 -0
  199. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/__init__.py +0 -0
  200. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_errors.py +0 -0
  201. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_expanded_result.py +0 -0
  202. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_headers.py +0 -0
  203. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_meta.py +0 -0
  204. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_resources.py +0 -0
  205. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/__init__.py +0 -0
  206. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/__init__.py +0 -0
  207. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_auth.py +0 -0
  208. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_uber.py +0 -0
  209. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/alerts.py +0 -0
  210. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/cloud_connect_aws.py +0 -0
  211. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/cspm_registration.py +0 -0
  212. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/custom_ioa.py +0 -0
  213. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/d4c_registration.py +0 -0
  214. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/detects.py +0 -0
  215. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/device_control_policies.py +0 -0
  216. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/discover.py +0 -0
  217. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/event_streams.py +0 -0
  218. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falcon_complete_dashboard.py +0 -0
  219. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falcon_container.py +0 -0
  220. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falconx_sandbox.py +0 -0
  221. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/fdr.py +0 -0
  222. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/filevantage.py +0 -0
  223. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/firewall_management.py +0 -0
  224. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/firewall_policies.py +0 -0
  225. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/host_group.py +0 -0
  226. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/hosts.py +0 -0
  227. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/identity_protection.py +0 -0
  228. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/incidents.py +0 -0
  229. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/installation_tokens.py +0 -0
  230. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/intel.py +0 -0
  231. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ioa_exclusions.py +0 -0
  232. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ioc.py +0 -0
  233. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/iocs.py +0 -0
  234. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/kubernetes_protection.py +0 -0
  235. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/malquery.py +0 -0
  236. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/message_center.py +0 -0
  237. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ml_exclusions.py +0 -0
  238. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/mobile_enrollment.py +0 -0
  239. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/mssp.py +0 -0
  240. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/oauth2.py +0 -0
  241. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ods.py +0 -0
  242. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/overwatch_dashboard.py +0 -0
  243. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/prevention_policy.py +0 -0
  244. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/quarantine.py +0 -0
  245. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/quick_scan.py +0 -0
  246. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/real_time_response.py +0 -0
  247. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/real_time_response_admin.py +0 -0
  248. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/recon.py +0 -0
  249. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/report_executions.py +0 -0
  250. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/response_policies.py +0 -0
  251. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sample_uploads.py +0 -0
  252. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/scheduled_reports.py +0 -0
  253. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_download.py +0 -0
  254. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_update_policy.py +0 -0
  255. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_visibility_exclusions.py +0 -0
  256. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/spotlight_evaluation_logic.py +0 -0
  257. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/spotlight_vulnerabilities.py +0 -0
  258. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/tailored_intelligence.py +0 -0
  259. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/user_management.py +0 -0
  260. {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/zero_trust_assessment.py +0 -0
@@ -88,6 +88,7 @@ This has been a critical element in the development of the FalconPy project.
88
88
  + Alex, `@khyberspache`
89
89
  + Phil Massyn, `@massyn`
90
90
  + Russell Snyder, `@rusnyder`
91
+ + `@PeroSoy`
91
92
 
92
93
 
93
94
  ## Sponsors
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crowdstrike-falconpy
3
- Version: 1.3.0.dev10
3
+ Version: 1.3.0.dev12
4
4
  Summary: The CrowdStrike Falcon SDK for Python 3
5
5
  Home-page: https://github.com/CrowdStrike/falconpy
6
6
  Author: CrowdStrike
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crowdstrike-falconpy
3
- Version: 1.3.0.dev10
3
+ Version: 1.3.0.dev12
4
4
  Summary: The CrowdStrike Falcon SDK for Python 3
5
5
  Home-page: https://github.com/CrowdStrike/falconpy
6
6
  Author: CrowdStrike
@@ -198,4 +198,61 @@ src/falconpy/_service_class/_service_class.py
198
198
  src/falconpy/_util/__init__.py
199
199
  src/falconpy/_util/_auth.py
200
200
  src/falconpy/_util/_functions.py
201
- src/falconpy/_util/_uber.py
201
+ src/falconpy/_util/_uber.py
202
+ tests/test_alerts.py
203
+ tests/test_authentications.py
204
+ tests/test_authorization.py
205
+ tests/test_cloud_connect_aws.py
206
+ tests/test_cspm_registration.py
207
+ tests/test_custom_ioa.py
208
+ tests/test_d4c_registration.py
209
+ tests/test_detects.py
210
+ tests/test_device_control_policies.py
211
+ tests/test_discover.py
212
+ tests/test_event_streams.py
213
+ tests/test_falcon_complete_dashboard.py
214
+ tests/test_falcon_container.py
215
+ tests/test_falconx_sandbox.py
216
+ tests/test_fdr.py
217
+ tests/test_filevantage.py
218
+ tests/test_firewall_management.py
219
+ tests/test_firewall_policies.py
220
+ tests/test_host_group.py
221
+ tests/test_hosts.py
222
+ tests/test_identity_protection.py
223
+ tests/test_incidents.py
224
+ tests/test_installation_tokens.py
225
+ tests/test_intel.py
226
+ tests/test_ioa_exclusions.py
227
+ tests/test_ioc.py
228
+ tests/test_iocs.py
229
+ tests/test_kubernetes_protection.py
230
+ tests/test_malquery.py
231
+ tests/test_message_center.py
232
+ tests/test_ml_exclusions.py
233
+ tests/test_mobile_enrollment.py
234
+ tests/test_mssp.py
235
+ tests/test_ods.py
236
+ tests/test_overwatch_dashboard.py
237
+ tests/test_prevention_policy.py
238
+ tests/test_quarantine.py
239
+ tests/test_quick_scan.py
240
+ tests/test_real_time_response.py
241
+ tests/test_real_time_response_admin.py
242
+ tests/test_recon.py
243
+ tests/test_report_executions.py
244
+ tests/test_response_policies.py
245
+ tests/test_result_object.py
246
+ tests/test_sample_uploads.py
247
+ tests/test_scheduled_reports.py
248
+ tests/test_sensor_download.py
249
+ tests/test_sensor_update_policy.py
250
+ tests/test_sensor_visibility_exclusions.py
251
+ tests/test_service_class.py
252
+ tests/test_spotlight_evaluation_logic.py
253
+ tests/test_spotlight_vulnerabilities.py
254
+ tests/test_tailored_intelligence.py
255
+ tests/test_timeout.py
256
+ tests/test_uber_api_complete.py
257
+ tests/test_user_management.py
258
+ tests/test_zero_trust_assessment.py
@@ -35,7 +35,7 @@ OTHER DEALINGS IN THE SOFTWARE.
35
35
 
36
36
  For more information, please refer to <https://unlicense.org>
37
37
  """
38
- from typing import Union, Dict, Optional, List, Type, Any
38
+ from typing import Union, Dict, Optional, List, Any
39
39
  from logging import Logger
40
40
  from ._request_behavior import RequestBehavior
41
41
  from ._request_connection import RequestConnection
@@ -47,16 +47,6 @@ from .._log import LogFacility
47
47
  class APIRequest:
48
48
  """This class represents a request made to the CrowdStrike API."""
49
49
 
50
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
51
- # |__| | | |__/ | |__] | | | |___ [__
52
- # | | | | | \ | |__] |__| | |___ ___]
53
- #
54
- _meta: RequestMeta = RequestMeta()
55
- _payloads: RequestPayloads = RequestPayloads()
56
- _connection: RequestConnection = RequestConnection()
57
- _behavior = RequestBehavior()
58
- _request_log: Optional[LogFacility] = None
59
-
60
50
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
61
51
  # | | | |\ | [__ | |__/ | | | | | | |__/
62
52
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -95,6 +85,13 @@ class APIRequest:
95
85
  sanitize_log=initializer.get("sanitize", None)
96
86
  )
97
87
 
88
+ else:
89
+ self._meta = RequestMeta()
90
+ self._payloads = RequestPayloads()
91
+ self._connection = RequestConnection()
92
+ self._behavior = RequestBehavior()
93
+ self._request_log: Optional[LogFacility] = None
94
+
98
95
  # _ _ ____ ___ _ _ ____ ___ ____
99
96
  # |\/| |___ | |__| | | | \ [__
100
97
  # | | |___ | | | |__| |__/ ___]
@@ -212,7 +209,7 @@ class APIRequest:
212
209
  self.behavior.perform = value
213
210
 
214
211
  @property
215
- def body_validator(self) -> Optional[Dict[str, Type]]:
212
+ def body_validator(self) -> Optional[Dict[str, Any]]:
216
213
  """Return the body payload validator from the behavior object."""
217
214
  return self.behavior.body_validator
218
215
 
@@ -35,48 +35,48 @@ OTHER DEALINGS IN THE SOFTWARE.
35
35
 
36
36
  For more information, please refer to <https://unlicense.org>
37
37
  """
38
- from typing import Optional, Dict, List, Type
38
+ from typing import Optional, Any, Dict, List
39
39
  from ._request_validator import RequestValidator
40
40
 
41
41
 
42
42
  class RequestBehavior:
43
43
  """This class represents specified behaviors for an API request."""
44
44
 
45
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
46
- # |__| | | |__/ | |__] | | | |___ [__
47
- # | | | | | \ | |__] |__| | |___ ___]
48
- #
49
- _expand_result: bool = False
50
- _container: bool = False
51
- _authenticating: bool = False
52
- _perform: bool = True
53
- _validator = RequestValidator()
54
-
55
45
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
56
46
  # | | | |\ | [__ | |__/ | | | | | | |__/
57
47
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
58
48
  #
59
49
  def __init__(self,
60
- expand_result: Optional[bool] = None,
61
- container: Optional[bool] = None,
62
- authenticating: Optional[bool] = None,
63
- perform: Optional[bool] = None,
64
- body_validator: Optional[Dict[str, Type]] = None,
50
+ expand_result: Optional[bool] = False,
51
+ container: Optional[bool] = False,
52
+ authenticating: Optional[bool] = False,
53
+ perform: Optional[bool] = True,
54
+ body_validator: Optional[Dict[str, Any]] = None,
65
55
  body_required: Optional[List[str]] = None
66
56
  ):
67
57
  """Construct an instance of RequestBehavior class."""
58
+ self._expand_result = False
68
59
  if isinstance(expand_result, bool):
69
- self.expand_result = expand_result
60
+ self._expand_result = expand_result
61
+
62
+ self._container = False
70
63
  if isinstance(container, bool):
71
- self.container = container
64
+ self._container = container
65
+
66
+ self._authenticating = False
72
67
  if isinstance(authenticating, bool):
73
- self.authenticating = authenticating
68
+ self._authenticating = authenticating
69
+
70
+ self._perform = True
74
71
  if isinstance(perform, bool):
75
- self.perform = perform
72
+ self._perform = perform
73
+
76
74
  if isinstance(body_validator, dict) or isinstance(body_required, list):
77
- self.validator = RequestValidator(validator=body_validator,
78
- required=body_required
79
- )
75
+ self._validator = RequestValidator(validator=body_validator,
76
+ required=body_required
77
+ )
78
+ else:
79
+ self._validator = RequestValidator()
80
80
 
81
81
  # ___ ____ ____ ___ ____ ____ ___ _ ____ ____
82
82
  # |__] |__/ | | |__] |___ |__/ | | |___ [__
@@ -133,7 +133,7 @@ class RequestBehavior:
133
133
  self._validator = value
134
134
 
135
135
  @property
136
- def body_validator(self) -> Optional[Dict[str, Type]]:
136
+ def body_validator(self) -> Optional[Dict[str, Any]]:
137
137
  """Reflection into the validator object for the body payload validator."""
138
138
  return self.validator.validator
139
139
 
@@ -41,15 +41,6 @@ from typing import Optional, Dict, Union
41
41
  class RequestConnection:
42
42
  """This class represents connection details related to an API request."""
43
43
 
44
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
45
- # |__| | | |__/ | |__] | | | |___ [__
46
- # | | | | | \ | |__] |__| | |___ ___]
47
- #
48
- _user_agent: Optional[str] = None
49
- _verify: bool = True
50
- _timeout: Optional[Union[int, tuple]] = None
51
- _proxy: Optional[Dict[str, str]] = None
52
-
53
44
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
54
45
  # | | | |\ | [__ | |__/ | | | | | | |__/
55
46
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -58,12 +49,14 @@ class RequestConnection:
58
49
  user_agent: Optional[str] = None,
59
50
  proxy: Optional[Dict[str, str]] = None,
60
51
  timeout: Optional[Union[int, tuple]] = None,
61
- verify: Optional[bool] = None
52
+ verify: Optional[bool] = True
62
53
  ):
63
54
  """Construct an instance of RequestConnection class."""
64
- self.user_agent: Optional[str] = user_agent
65
- self.proxy: Optional[Dict[str, str]] = proxy
66
- self.timeout: Optional[Union[int, tuple]] = timeout
55
+ self._user_agent: Optional[str] = user_agent
56
+ self._proxy: Optional[Dict[str, str]] = proxy
57
+ self._timeout: Optional[Union[int, tuple]] = timeout
58
+
59
+ self._verify = True
67
60
  if isinstance(verify, bool):
68
61
  self.verify: bool = verify
69
62
 
@@ -41,15 +41,6 @@ from typing import Dict, Union, Optional
41
41
  class RequestMeta:
42
42
  """This class contains the relevant metadata for the API request being performed."""
43
43
 
44
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
45
- # |__| | | |__/ | |__] | | | |___ [__
46
- # | | | | | \ | |__] |__| | |___ ___]
47
- #
48
- _method: str = "GET"
49
- _endpoint: Optional[str] = None
50
- # These are set during the processing of the request
51
- _debug_headers: Optional[Dict[str, Optional[Union[str, int, float]]]] = {}
52
-
53
44
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
54
45
  # | | | |\ | [__ | |__/ | | | | | | |__/
55
46
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -60,9 +51,12 @@ class RequestMeta:
60
51
  debug_headers: Optional[Dict[str, Optional[Union[str, int, float]]]] = None
61
52
  ):
62
53
  """Construct an instance of RequestMeta class."""
63
- self.endpoint = endpoint
64
- self.method = method
65
- self.debug_headers = debug_headers
54
+ self._endpoint: Optional[str] = endpoint
55
+ self._method: str = method
56
+
57
+ self._debug_headers: Optional[Dict[str, Optional[Union[str, int, float]]]] = debug_headers
58
+ if debug_headers is None:
59
+ self._debug_headers = {}
66
60
 
67
61
  # ___ ____ ____ ___ ____ ____ ___ _ ____ ____
68
62
  # |__] |__/ | | |__] |___ |__/ | | |___ [__
@@ -41,15 +41,6 @@ from typing import Optional, Dict, List, Union
41
41
  class RequestPayloads:
42
42
  """This class contains all of the payloads sent as part of the API request."""
43
43
 
44
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
45
- # |__| | | |__/ | |__] | | | |___ [__
46
- # | | | | | \ | |__] |__| | |___ ___]
47
- #
48
- _params: Optional[Dict[str, Optional[Union[str, int, float, list, dict]]]] = None
49
- _body: Optional[Union[bytes, Dict[str, Union[str, int, dict, list, bytes]]]] = None
50
- _data: Optional[Union[bytes, Dict[str, Union[str, int, dict, list, bytes]]]] = None
51
- _files: Optional[List[tuple]] = None
52
-
53
44
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
54
45
  # | | | |\ | [__ | |__/ | | | | | | |__/
55
46
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -61,10 +52,10 @@ class RequestPayloads:
61
52
  files: Optional[List[tuple]] = None
62
53
  ):
63
54
  """Construct an instance of RequestPayloads class."""
64
- self.params = params
65
- self.body = body
66
- self.data = data
67
- self.files = files
55
+ self._params = params
56
+ self._body = body
57
+ self._data = data
58
+ self._files = files
68
59
 
69
60
  # ___ ____ ____ ___ ____ ____ ___ _ ____ ____
70
61
  # |__] |__/ | | |__] |___ |__/ | | |___ [__
@@ -35,42 +35,35 @@ OTHER DEALINGS IN THE SOFTWARE.
35
35
 
36
36
  For more information, please refer to <https://unlicense.org>
37
37
  """
38
- from typing import Type, Dict, Optional, List
38
+ from typing import Any, Dict, Optional, List
39
39
 
40
40
 
41
41
  class RequestValidator:
42
42
  """This class represents a request payload validator."""
43
43
 
44
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
45
- # |__| | | |__/ | |__] | | | |___ [__
46
- # | | | | | \ | |__] |__| | |___ ___]
47
- #
48
- _validator: Optional[Dict[str, Type]] = None
49
- _required: Optional[List[str]] = None
50
-
51
44
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
52
45
  # | | | |\ | [__ | |__/ | | | | | | |__/
53
46
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
54
47
  #
55
48
  def __init__(self,
56
- validator: Optional[Dict[str, Type]] = None,
49
+ validator: Optional[Dict[str, Any]] = None,
57
50
  required: Optional[List[str]] = None
58
51
  ):
59
52
  """Construct an instance of RequestValidator class."""
60
- self.validator = validator
61
- self.required = required
53
+ self._validator: Optional[Dict[str, Any]] = validator
54
+ self._required: Optional[List[str]] = required
62
55
 
63
56
  # ___ ____ ____ ___ ____ ____ ___ _ ____ ____
64
57
  # |__] |__/ | | |__] |___ |__/ | | |___ [__
65
58
  # | | \ |__| | |___ | \ | | |___ ___]
66
59
  #
67
60
  @property
68
- def validator(self) -> Optional[Dict[str, Type]]:
61
+ def validator(self) -> Optional[Dict[str, Any]]:
69
62
  """Return the validator dictionary."""
70
63
  return self._validator
71
64
 
72
65
  @validator.setter
73
- def validator(self, value: Optional[Dict[str, Type]]):
66
+ def validator(self, value: Optional[Dict[str, Any]]):
74
67
  """Set the validator dictionary."""
75
68
  self._validator = value
76
69
 
@@ -88,7 +81,7 @@ class RequestValidator:
88
81
  # This code will be updated to the following once Python 3.6 support is dropped.
89
82
  #
90
83
  # from dataclasses import dataclass
91
- # from typing import Type, Dict, Optional, List
84
+ # from typing import Any, Dict, Optional, List
92
85
 
93
86
 
94
87
  # @dataclass
@@ -99,5 +92,5 @@ class RequestValidator:
99
92
  # # |__| | | |__/ | |__] | | | |___ [__
100
93
  # # | | | | | \ | |__] |__| | |___ ___]
101
94
  # #
102
- # validator: Optional[Dict[str, Type]] = None
95
+ # validator: Optional[Dict[str, Any]] = None
103
96
  # required: Optional[List[str]] = None
@@ -42,24 +42,6 @@ from .._constant import MIN_TOKEN_RENEW_WINDOW, MAX_TOKEN_RENEW_WINDOW
42
42
 
43
43
  class BearerToken:
44
44
  """This class represents a bearer token received from the API."""
45
-
46
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
47
- # |__| | | |__/ | |__] | | | |___ [__
48
- # | | | | | \ | |__] |__| | |___ ___]
49
- #
50
- # Integer specifying the amount of time remaining before the token expires (in seconds).
51
- _expiration: int = 0
52
- # Float indicating the moment in time that the token was generated (timestamp).
53
- _token_time: float = 0
54
- # String containing the error message received from the API when token generation failed.
55
- _fail_reason: Optional[str] = None
56
- # Integer representing the HTTP status code received when generating the token.
57
- _status: Optional[int] = None
58
- # String representation of the token.
59
- _value: Optional[str] = None
60
- # Number of seconds between token expiration and now before a token is considered stale.
61
- _renew_window: int = 120
62
-
63
45
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
64
46
  # | | | |\ | [__ | |__/ | | | | | | |__/
65
47
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -67,19 +49,32 @@ class BearerToken:
67
49
  # Tokens can be instantiated without a value (e.g. invalid or expired).
68
50
  def __init__(self,
69
51
  token_value: Optional[str] = None,
70
- expiration: Optional[int] = None,
52
+ expiration: Optional[int] = 0,
71
53
  status: Optional[int] = None
72
54
  ):
73
55
  """Create an instance of the BearerToken class."""
74
- # if token_value:
75
56
  self._value = token_value
57
+
58
+ # String containing the error message received from the API when token generation failed.
59
+ self._fail_reason: Optional[str] = None
60
+ # Number of seconds between token expiration and now before a token is considered stale.
61
+ self._renew_window: int = 120
62
+
63
+ # Integer specifying the amount of time remaining before the token expires (in seconds).
64
+ self._expiration: int = 0
76
65
  if isinstance(expiration, int):
77
66
  self._expiration = expiration
78
- if token_value:
79
- self._token_time = time.time()
67
+
68
+ # Integer representing the HTTP status code received when generating the token.
69
+ self._status: Optional[int] = None
80
70
  if isinstance(status, int):
81
71
  self._status = status
82
72
 
73
+ # Float indicating the moment in time that the token was generated (timestamp).
74
+ self._token_time: float = 0
75
+ if token_value:
76
+ self._token_time = time.time()
77
+
83
78
  # _ _ ____ ___ _ _ ____ ___ ____
84
79
  # |\/| |___ | |__| | | | \ [__
85
80
  # | | |___ | | | |__| |__/ ___]
@@ -67,28 +67,6 @@ from .._error import InvalidCredentials, NoAuthenticationMechanism, InvalidCrede
67
67
  # pylint: disable=R0902
68
68
  class FalconInterface(BaseFalconAuth):
69
69
  """Standard Falcon API interface used by Service Classes."""
70
-
71
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
72
- # |__| | | |__/ | |__] | | | |___ [__
73
- # | | | | | \ | |__] |__| | |___ ___]
74
- #
75
- # These attributes are present in all FalconInterface objects, regardless if we are referring
76
- # to APIHarness, OAuth2 or custom inheriting classes.
77
- #
78
- # The default credential dictionary, where the client_id and client_secret are stored.
79
- _creds: Dict[str, str] = {}
80
- # Starting with v1.3.0 minimal python native logging is available. In order to reduce
81
- # potential impacts to developer configurations, this facility is extremely limited
82
- # and not implemented by default. (Meaning logs are not generated.)
83
- # To enable logging, pass the keyword "debug" with a value of True to the constructor.
84
- _log: LogFacility = LogFacility()
85
- # Our token is stored within a BearerToken object.
86
- _token: BearerToken = BearerToken()
87
- # Configuration detail for this interface.
88
- _config: InterfaceConfiguration = None
89
- # Pythonic behavior.
90
- _pythonic: bool = False
91
-
92
70
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
93
71
  # | | | |\ | [__ | |__/ | | | | | | |__/
94
72
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
@@ -111,12 +89,20 @@ class FalconInterface(BaseFalconAuth):
111
89
  debug: Optional[bool] = False,
112
90
  debug_record_count: Optional[int] = None,
113
91
  sanitize_log: Optional[bool] = None,
114
- pythonic: Optional[bool] = None
92
+ pythonic: Optional[bool] = False
115
93
  ) -> "FalconInterface":
116
94
  """Construct an instance of the FalconInterface class."""
117
95
  # Set the pythonic behavior mode.
96
+ self.pythonic: bool = False
118
97
  if isinstance(pythonic, bool):
119
98
  self._pythonic = pythonic
99
+
100
+ # The default credential dictionary, where the client_id and client_secret are stored.
101
+ self._creds = {}
102
+
103
+ # Set up an empty Bearer Token container
104
+ self._token: BearerToken = BearerToken()
105
+
120
106
  # Setup our configuration object using the provided keywords.
121
107
  self.config: InterfaceConfiguration = InterfaceConfiguration(base_url=base_url,
122
108
  proxy=proxy,
@@ -150,14 +136,16 @@ class FalconInterface(BaseFalconAuth):
150
136
  self.creds: Dict[str, str] = creds
151
137
  else:
152
138
  raise InvalidCredentialFormat
139
+
140
+ # Legacy (Token) Authentication (fallback)
141
+ if access_token:
142
+ # Store this non-refreshable token, assuming it was just generated.
143
+ self._token: BearerToken = BearerToken(access_token, 1799, 201)
144
+
153
145
  # Set the token renewal window, ignored when using Legacy Authentication.
154
146
  self.renew_window: int = max(min(renew_window, MAX_TOKEN_RENEW_WINDOW),
155
147
  MIN_TOKEN_RENEW_WINDOW
156
148
  )
157
- # Legacy (Token) Authentication (fallback)
158
- if access_token:
159
- # Store this non-refreshable token, assuming it was just generated.
160
- self._token: BearerToken = BearerToken(access_token, 1799)
161
149
 
162
150
  # Environment Authentication
163
151
  # When credentials are not provided, attempt to retrieve them from the environment.
@@ -174,6 +162,10 @@ class FalconInterface(BaseFalconAuth):
174
162
  }
175
163
 
176
164
  # Log the creation of this object if debugging is enabled.
165
+ # Starting with v1.3.0 minimal Python native logging is available. In order to reduce
166
+ # potential impacts to developer configurations, this facility is extremely limited
167
+ # and not implemented by default. (Meaning logs are not generated.)
168
+ # To enable logging, pass the keyword "debug" with a value of True to the constructor.
177
169
  if debug:
178
170
  # Ignored when debugging is disabled.
179
171
  _debug_record_count: int = debug_record_count if debug_record_count else None
@@ -186,6 +178,9 @@ class FalconInterface(BaseFalconAuth):
186
178
  )
187
179
  # Log the startup of this class.
188
180
  log_class_startup(self, self.log)
181
+ else:
182
+ # Set up an empty log facility
183
+ self._log: LogFacility = LogFacility()
189
184
 
190
185
  try:
191
186
  if not self.cred_format_valid and not self.token_value:
@@ -41,40 +41,26 @@ from typing import Dict, Union, Optional
41
41
  class InterfaceConfiguration:
42
42
  """This class represents the configuration of the interface."""
43
43
 
44
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
45
- # |__| | | |__/ | |__] | | | |___ [__
46
- # | | | | | \ | |__] |__| | |___ ___]
47
- #
48
- # The base URL for this interface.
49
- _base_url: str = None
50
- # The proxy to use for communication with the CrowdStrike Falcon API.
51
- _proxy: Optional[Dict[str, str]] = None
52
- # The timeout to use for communication.
53
- # Either an integer for the entire operation or a float for (connect, read).
54
- _timeout: Optional[Union[int, tuple]] = None
55
- # The user-agent string to use for requests to the CrowdStrike Falcon API.
56
- _user_agent: Optional[str] = None
57
- # SSL Verification boolean, defaults to True.
58
- _ssl_verify: bool = True
59
-
60
44
  # ____ ____ _ _ ____ ___ ____ _ _ ____ ___ ____ ____
61
45
  # | | | |\ | [__ | |__/ | | | | | | |__/
62
46
  # |___ |__| | \| ___] | | \ |__| |___ | |__| | \
63
47
  #
64
48
  def __init__(self,
65
- base_url: str,
49
+ base_url: Optional[str] = None,
66
50
  proxy: Optional[Dict[str, str]] = None,
67
51
  timeout: Optional[Union[int, tuple]] = None,
68
52
  user_agent: Optional[str] = None,
69
53
  ssl_verify: Optional[bool] = True
70
54
  ):
71
55
  """Construct an instance of the InterfaceConfiguration class."""
72
- self.base_url = base_url
73
- self.proxy = proxy
74
- self.timeout = timeout
75
- self.user_agent = user_agent
56
+ self._base_url: Optional[str] = base_url
57
+ self._proxy: Optional[Dict[str, str]] = proxy
58
+ self._timeout: Optional[Union[int, tuple]] = timeout
59
+ self._user_agent: Optional[str] = user_agent
60
+
61
+ self._ssl_verify: bool = True
76
62
  if isinstance(ssl_verify, bool):
77
- self.ssl_verify = ssl_verify
63
+ self._ssl_verify = ssl_verify
78
64
 
79
65
  # ___ ____ ____ ___ ____ ____ ___ _ ____ ____
80
66
  # |__] |__/ | | |__] |___ |__/ | | |___ [__
@@ -45,7 +45,7 @@ PREFER_NONETYPE: List[str] = [
45
45
  PREFER_IDS_IN_BODY: List[str] = [
46
46
  "GetDeviceDetails", "PostDeviceDetailsV2", "GetVulnerabilities", "GetIntelIndicatorEntities",
47
47
  "getChildrenV2", "cancel-scans", "GetDetectSummaries", "UpdateQuarantinedDetectsByIds",
48
- "GetQuarantineFiles"
48
+ "GetQuarantineFiles", "PostEntitiesAlertsV1"
49
49
  ]
50
50
  MOCK_OPERATIONS: List[str] = [
51
51
  "GetImageAssessmentReport", "DeleteImageDetails", "ImageMatchesPolicy"
@@ -43,26 +43,21 @@ from .._constant import MAX_DEBUG_RECORDS
43
43
  class LogFacility:
44
44
  """This class encapsulates the log facility and additional configuration."""
45
45
 
46
- # ____ ___ ___ ____ _ ___ _ _ ___ ____ ____
47
- # |__| | | |__/ | |__] | | | |___ [__
48
- # | | | | | \ | |__] |__| | |___ ___]
49
- #
50
- _log: Optional[Logger] = None
51
- # Maximum number of debug records to log in debug logs.
52
- _debug_record_count: int = MAX_DEBUG_RECORDS
53
- # Flag representing if debug logs should be sanitized.
54
- _sanitize: bool = True
55
-
56
46
  def __init__(self,
57
47
  log: Optional[Logger] = None,
58
48
  debug_record_count: Optional[int] = None,
59
49
  sanitize_log: Optional[bool] = None
60
50
  ):
61
51
  """Construct an instance of the LogFacility class."""
52
+ self._log: Optional[Logger] = None
62
53
  if isinstance(log, Logger):
63
54
  self._log = log
55
+
56
+ self._debug_record_count: int = MAX_DEBUG_RECORDS
64
57
  if isinstance(debug_record_count, (int, str)):
65
58
  self._debug_record_count = int(debug_record_count)
59
+
60
+ self._sanitize: bool = True
66
61
  if isinstance(sanitize_log, bool):
67
62
  self._sanitize = sanitize_log
68
63
 
@@ -41,21 +41,16 @@ from ._response_component import ResponseComponent
41
41
 
42
42
  class BaseResource(ResponseComponent):
43
43
  """The base class for different resource types we can have within an API response."""
44
-
45
- # _______ _______ _______ ______ _____ ______ _ _ _______ _______ _______
46
- # |_____| | | |_____/ | |_____] | | | |______ |______
47
- # | | | | | \_ __|__ |_____] |_____| | |______ ______|
48
- #
49
- # Override the _data attribute from ResponseComponent to always be a list.
50
- _data: List[Optional[Union[str, int, float, dict]]] = []
51
- _pos: int = 0
52
-
53
44
  # _______ _____ __ _ _______ _______ ______ _ _ _______ _______ _____ ______
54
45
  # | | | | \ | |______ | |_____/ | | | | | | |_____/
55
46
  # |_____ |_____| | \_| ______| | | \_ |_____| |_____ | |_____| | \_
56
47
  #
57
48
  def __init__(self, data: Optional[List[Union[str, int, float, dict]]] = None):
58
49
  """Construct an instance of the class."""
50
+ # Override the _data attribute from ResponseComponent to always be a list.
51
+ self._data: Optional[List[Union[str, int, float, dict]]] = []
52
+ self._pos: int = 0
53
+
59
54
  if isinstance(data, list):
60
55
  super().__init__(data=data)
61
56