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.
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/AUTHORS.md +1 -0
- {crowdstrike-falconpy-1.3.0.dev10/src/crowdstrike_falconpy.egg-info → crowdstrike-falconpy-1.3.0.dev12}/PKG-INFO +1 -1
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12/src/crowdstrike_falconpy.egg-info}/PKG-INFO +1 -1
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/SOURCES.txt +58 -1
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request.py +9 -12
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_behavior.py +24 -24
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_connection.py +6 -13
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_meta.py +6 -12
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_payloads.py +4 -13
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/_request_validator.py +8 -15
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_bearer_token.py +17 -22
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_falcon_interface.py +22 -27
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_interface_config.py +8 -22
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_constant/__init__.py +1 -1
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_log/_facility.py +5 -10
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/__base_resource.py +4 -9
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_base_dictionary.py +12 -11
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_response_component.py +4 -9
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_result.py +12 -16
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/_base_service_class.py +21 -33
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/_service_class.py +19 -25
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_functions.py +2 -2
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_version.py +1 -1
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/api_complete.py +3 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/debug.py +0 -24
- crowdstrike-falconpy-1.3.0.dev12/tests/test_alerts.py +70 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_authentications.py +321 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_authorization.py +298 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_cloud_connect_aws.py +217 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_cspm_registration.py +133 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_custom_ioa.py +92 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_d4c_registration.py +155 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_detects.py +145 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_device_control_policies.py +145 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_discover.py +77 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_event_streams.py +111 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_falcon_complete_dashboard.py +110 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_falcon_container.py +63 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_falconx_sandbox.py +83 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_fdr.py +36 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_filevantage.py +40 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_firewall_management.py +253 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_firewall_policies.py +68 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_host_group.py +141 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_hosts.py +284 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_identity_protection.py +70 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_incidents.py +112 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_installation_tokens.py +103 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_intel.py +63 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_ioa_exclusions.py +71 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_ioc.py +83 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_iocs.py +63 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_kubernetes_protection.py +55 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_malquery.py +90 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_message_center.py +100 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_ml_exclusions.py +59 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_mobile_enrollment.py +30 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_mssp.py +64 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_ods.py +126 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_overwatch_dashboard.py +64 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_prevention_policy.py +144 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_quarantine.py +43 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_quick_scan.py +78 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_real_time_response.py +144 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_real_time_response_admin.py +161 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_recon.py +114 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_report_executions.py +44 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_response_policies.py +76 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_result_object.py +728 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_sample_uploads.py +156 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_scheduled_reports.py +43 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_download.py +106 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_update_policy.py +195 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_sensor_visibility_exclusions.py +56 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_service_class.py +378 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_spotlight_evaluation_logic.py +77 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_spotlight_vulnerabilities.py +87 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_tailored_intelligence.py +48 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_timeout.py +124 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_uber_api_complete.py +371 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_user_management.py +204 -0
- crowdstrike-falconpy-1.3.0.dev12/tests/test_zero_trust_assessment.py +50 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/LICENSE +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/README.md +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/setup.cfg +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/setup.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/dependency_links.txt +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/requires.txt +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/crowdstrike_falconpy.egg-info/top_level.txt +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_api_request/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_base_falcon_auth.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_auth_object/_uber_interface.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_alerts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_cspm_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_detects.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_device_control_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_discover.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_event_streams.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falcon_complete_dashboard.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falcon_container.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_fdr.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_filevantage.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_firewall_management.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_firewall_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_host_group.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_hosts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_identity_protection.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_incidents.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_intel.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ioc.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_iocs.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_kubernetes_protection.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_malquery.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_message_center.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ml_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_mssp.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_oauth2.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_ods.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_prevention_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_quarantine.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_quick_scan.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_real_time_response.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_recon.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_report_executions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_response_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_download.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_update_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_user_management.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_discover.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_fdr.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_firewall_management.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_hosts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_identity_protection.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_ioc.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_iocs.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_ods.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_real_time_response.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_report_executions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_endpoint/deprecated/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_base_url.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_container_base_url.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_enum/_token_fail_reason.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/_exceptions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_error/_warnings.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_log/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_alerts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_container.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_cspm_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_detects.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_device_control_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_falconx.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_firewall.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_generic.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_host_group.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_incidents.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ioa.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ioc.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_malquery.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_message_center.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_mssp.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_ods.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_prevention_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_real_time_response.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_recon.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_reports.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_response_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_payload/_sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_errors.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_expanded_result.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_headers.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_meta.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_result/_resources.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_service_class/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/__init__.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_auth.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_util/_uber.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/alerts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/cspm_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/custom_ioa.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/d4c_registration.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/detects.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/device_control_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/discover.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/event_streams.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falcon_complete_dashboard.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falcon_container.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/fdr.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/filevantage.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/firewall_management.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/firewall_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/host_group.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/hosts.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/identity_protection.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/incidents.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/installation_tokens.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/intel.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ioc.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/iocs.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/kubernetes_protection.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/malquery.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/message_center.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ml_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/mssp.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/oauth2.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/ods.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/prevention_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/quarantine.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/quick_scan.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/real_time_response.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/recon.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/report_executions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/response_policies.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sample_uploads.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/scheduled_reports.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_download.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/user_management.py +0 -0
- {crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/zero_trust_assessment.py +0 -0
|
@@ -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,
|
|
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,
|
|
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
|
|
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] =
|
|
61
|
-
container: Optional[bool] =
|
|
62
|
-
authenticating: Optional[bool] =
|
|
63
|
-
perform: Optional[bool] =
|
|
64
|
-
body_validator: Optional[Dict[str,
|
|
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.
|
|
60
|
+
self._expand_result = expand_result
|
|
61
|
+
|
|
62
|
+
self._container = False
|
|
70
63
|
if isinstance(container, bool):
|
|
71
|
-
self.
|
|
64
|
+
self._container = container
|
|
65
|
+
|
|
66
|
+
self._authenticating = False
|
|
72
67
|
if isinstance(authenticating, bool):
|
|
73
|
-
self.
|
|
68
|
+
self._authenticating = authenticating
|
|
69
|
+
|
|
70
|
+
self._perform = True
|
|
74
71
|
if isinstance(perform, bool):
|
|
75
|
-
self.
|
|
72
|
+
self._perform = perform
|
|
73
|
+
|
|
76
74
|
if isinstance(body_validator, dict) or isinstance(body_required, list):
|
|
77
|
-
self.
|
|
78
|
-
|
|
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,
|
|
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] =
|
|
52
|
+
verify: Optional[bool] = True
|
|
62
53
|
):
|
|
63
54
|
"""Construct an instance of RequestConnection class."""
|
|
64
|
-
self.
|
|
65
|
-
self.
|
|
66
|
-
self.
|
|
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.
|
|
64
|
-
self.
|
|
65
|
-
|
|
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.
|
|
65
|
-
self.
|
|
66
|
-
self.
|
|
67
|
-
self.
|
|
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
|
|
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,
|
|
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.
|
|
61
|
-
self.
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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] =
|
|
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
|
-
|
|
79
|
-
|
|
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] =
|
|
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.
|
|
73
|
-
self.
|
|
74
|
-
self.
|
|
75
|
-
self.
|
|
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.
|
|
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"
|
{crowdstrike-falconpy-1.3.0.dev10 → crowdstrike-falconpy-1.3.0.dev12}/src/falconpy/_log/_facility.py
RENAMED
|
@@ -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
|
|