crowdstrike-falconpy-dev 1.4.1__tar.gz → 1.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/AUTHORS.md +6 -2
- {crowdstrike-falconpy-dev-1.4.1/src/crowdstrike_falconpy_dev.egg-info → crowdstrike-falconpy-dev-1.4.3}/PKG-INFO +13 -3
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/README.md +2 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3/src/crowdstrike_falconpy_dev.egg-info}/PKG-INFO +13 -3
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_falcon_interface.py +151 -84
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_uber_interface.py +4 -2
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_alerts.py +2 -1
- crowdstrike-falconpy-dev-1.4.3/src/falconpydev/_endpoint/_cloud_snapshots.py +164 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_detections.py +36 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_images.py +4 -3
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_cspm_registration.py +67 -6
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_d4c_registration.py +14 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_discover.py +48 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falcon_complete_dashboard.py +14 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_filevantage.py +9 -9
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_foundry_logscale.py +94 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_intel.py +79 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_iocs.py +42 -44
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_kubernetes_protection.py +13 -12
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_message_center.py +2 -2
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response.py +30 -28
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response_admin.py +21 -20
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_download.py +112 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_workflows.py +125 -7
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_discover.py +48 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_real_time_response.py +17 -15
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_real_time_response_admin.py +10 -9
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/__init__.py +15 -5
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cloud_snapshots.py +17 -60
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cspm_registration.py +44 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_filevantage.py +7 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_workflows.py +20 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/_service_class.py +21 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/__init__.py +2 -2
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_auth.py +45 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_functions.py +20 -8
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_version.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/alerts.py +28 -8
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cloud_snapshots.py +132 -69
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_detections.py +46 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_images.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cspm_registration.py +185 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/d4c_registration.py +61 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/discover.py +71 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falcon_complete_dashboard.py +87 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/filevantage.py +79 -44
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/foundry_logscale.py +67 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/intel.py +94 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/kubernetes_protection.py +8 -4
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/oauth2.py +4 -2
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sample_uploads.py +5 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_download.py +144 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/workflows.py +88 -25
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_authentications.py +32 -28
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cloud_connect_aws.py +16 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cloud_snapshots.py +4 -4
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_detections.py +4 -3
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_packages.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_vulnerabilities.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cspm_registration.py +6 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_d4c_registration.py +2 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_discover.py +1 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_drift_indicators.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falcon_complete_dashboard.py +1 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_foundry_logscale.py +2 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_intel.py +5 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_result_object.py +6 -5
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sample_uploads.py +2 -2
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_download.py +43 -9
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_uber.py +19 -18
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_uber_api_complete.py +16 -16
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_unidentified_containers.py +1 -1
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_workflows.py +5 -2
- crowdstrike-falconpy-dev-1.4.3/tests/test_zero_trust_assessment.py +82 -0
- crowdstrike-falconpy-dev-1.4.1/src/falconpydev/_endpoint/_cloud_snapshots.py +0 -76
- crowdstrike-falconpy-dev-1.4.1/tests/test_zero_trust_assessment.py +0 -50
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/LICENSE +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/dev_setup.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/setup.cfg +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/setup.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/SOURCES.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/dependency_links.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/requires.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/top_level.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_behavior.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_connection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_meta.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_payloads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_validator.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_base_falcon_auth.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_bearer_token.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_interface_config.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_constant/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_packages.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_drift_indicators.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_oauth2.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_prevention_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_update_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_unidentified_containers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_user_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_mapping.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_base_url.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_container_base_url.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_token_fail_reason.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/_exceptions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/_warnings.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_log/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_log/_facility.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_device_control_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_falconx.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_firewall.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_foundry.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_generic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_response_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/__base_resource.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_base_dictionary.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_errors.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_expanded_result.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_headers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_meta.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_resources.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_response_component.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_result.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/_base_service_class.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_service.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_uber.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/_advanced.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/_legacy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_packages.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/debug.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/drift_indicators.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/unidentified_containers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/user_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_api_request.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_authorization.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_images.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_filevantage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_kubernetes_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_service_class.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_timeout.py +0 -0
- {crowdstrike-falconpy-dev-1.4.1 → crowdstrike-falconpy-dev-1.4.3}/tests/test_user_management.py +0 -0
|
@@ -28,7 +28,6 @@ These coders deserve accolades and laurels as well as cool titles and cartoons.
|
|
|
28
28
|
|
|
29
29
|
| Name | Role |
|
|
30
30
|
| :--- | :--- |
|
|
31
|
-
| Šimon L., `@isimluk` | [Sanity Checker](https://xkcd.com/1926/) |
|
|
32
31
|
| Josh Lang, `@jlangdev` | [Lint Purveyor](https://xkcd.com/1833/) |
|
|
33
32
|
| Christopher Hammond, `@ChristopherHammond13` | [Technical Debt Collector](https://xkcd.com/2138/) |
|
|
34
33
|
| Gabe Alford, `@redhatrises` | [Git Whisperer](https://xkcd.com/1597/) |
|
|
@@ -37,6 +36,9 @@ These coders deserve accolades and laurels as well as cool titles and cartoons.
|
|
|
37
36
|
| Shane Shellenbarger, `@soggysec` | [Calamity Validator](https://xkcd.com/1700/) |
|
|
38
37
|
| Steve Klassen, `@mrxinu` | [Dilemma Responder](https://xkcd.com/85/) |
|
|
39
38
|
|
|
39
|
+
#### Honorable mentions
|
|
40
|
+
+ Šimon L., `@isimluk` ([Sanity Checker](https://xkcd.com/1926/))
|
|
41
|
+
|
|
40
42
|
## Contributors
|
|
41
43
|
The following members of the community have made requests, suggestions, code contributions or provided feedback and reported bugs.
|
|
42
44
|
This has been a critical element in the development of the FalconPy project.
|
|
@@ -90,6 +92,8 @@ This has been a critical element in the development of the FalconPy project.
|
|
|
90
92
|
+ Phil Massyn, `@massyn`
|
|
91
93
|
+ Russell Snyder, `@rusnyder`
|
|
92
94
|
+ `@PeroSoy`
|
|
95
|
+
+ Shubham, `@i-shubham01`
|
|
96
|
+
+ Don "Swanson" I., `@Don-Swanson-Adobe`
|
|
93
97
|
|
|
94
98
|
|
|
95
99
|
## Sponsors
|
|
@@ -98,11 +102,11 @@ Without the support of these executives, the FalconPy project would not have hap
|
|
|
98
102
|
| Name | Role |
|
|
99
103
|
| :-- | :-- |
|
|
100
104
|
| Chris Kachigian, `@ckachigian` | Herder of Cats |
|
|
101
|
-
| Rekha Das | Gatekeeper |
|
|
102
105
|
| Robbie Coleman, `@erraggy` | Keymaster |
|
|
103
106
|
| Mike Cryer | Colonel-in-Chief |
|
|
104
107
|
|
|
105
108
|
#### Honorable mentions
|
|
109
|
+
+ Rekha Das
|
|
106
110
|
+ Jaime Franklin, `@franklinjff`
|
|
107
111
|
+ Shawn Wells, `@shawndwells`
|
|
108
112
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: crowdstrike-falconpy-dev
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.3
|
|
4
4
|
Summary: The CrowdStrike Falcon SDK for Python 3
|
|
5
5
|
Home-page: https://github.com/CrowdStrike/falconpy
|
|
6
6
|
Author: CrowdStrike
|
|
@@ -36,9 +36,18 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
36
36
|
Classifier: Topic :: Utilities
|
|
37
37
|
Requires-Python: >=3.6
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
|
-
Provides-Extra: dev
|
|
40
39
|
License-File: LICENSE
|
|
41
40
|
License-File: AUTHORS.md
|
|
41
|
+
Requires-Dist: requests
|
|
42
|
+
Requires-Dist: urllib3
|
|
43
|
+
Provides-Extra: dev
|
|
44
|
+
Requires-Dist: flake8; extra == "dev"
|
|
45
|
+
Requires-Dist: coverage; extra == "dev"
|
|
46
|
+
Requires-Dist: pydocstyle; extra == "dev"
|
|
47
|
+
Requires-Dist: pylint; extra == "dev"
|
|
48
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest; extra == "dev"
|
|
50
|
+
Requires-Dist: bandit; extra == "dev"
|
|
42
51
|
|
|
43
52
|

|
|
44
53
|
|
|
@@ -56,7 +65,7 @@ License-File: AUTHORS.md
|
|
|
56
65
|
[](https://github.com/CrowdStrike/falconpy/releases)
|
|
57
66
|
[](https://github.com/CrowdStrike/falconpy/graphs/code-frequency)
|
|
58
67
|
[](https://github.com/CrowdStrike/falconpy/commits/main)
|
|
59
|
-

|
|
68
|
+

|
|
60
69
|
|
|
61
70
|
The FalconPy SDK contains a collection of Python classes that abstract CrowdStrike Falcon OAuth2 API interaction, removing duplicative code and allowing developers to focus on just the logic of their solution requirements.
|
|
62
71
|
|
|
@@ -130,6 +139,7 @@ For each CrowdStrike Falcon API service collection, a matching Service Class is
|
|
|
130
139
|
|
|
131
140
|
- Closely follows Python and OpenAPI best practice for code style and syntax. PEP-8 compliant.
|
|
132
141
|
- Completely abstracts token management, automatically refreshing your token when it expires.
|
|
142
|
+
- Interact with newly released API operations not yet available in the library via the `override` method.
|
|
133
143
|
- Provides simple programmatic patterns for interacting with CrowdStrike Falcon APIs.
|
|
134
144
|
- Supports [cloud region autodiscovery](https://www.falconpy.io/Usage/Environment-Configuration.html#cloud-region-autodiscovery) for the CrowdStrike `US-1`, `US-2` and `EU-1` regions.
|
|
135
145
|
- Supports dynamic [configuration](https://www.falconpy.io/Usage/Environment-Configuration.html) based upon the needs of your environment.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[](https://github.com/CrowdStrike/falconpy/releases)
|
|
10
10
|
[](https://github.com/CrowdStrike/falconpy/graphs/code-frequency)
|
|
11
11
|
[](https://github.com/CrowdStrike/falconpy/commits/main)
|
|
12
|
-

|
|
12
|
+

|
|
13
13
|
|
|
14
14
|
The FalconPy SDK contains a collection of Python classes that abstract CrowdStrike Falcon OAuth2 API interaction, removing duplicative code and allowing developers to focus on just the logic of their solution requirements.
|
|
15
15
|
|
|
@@ -83,6 +83,7 @@ For each CrowdStrike Falcon API service collection, a matching Service Class is
|
|
|
83
83
|
|
|
84
84
|
- Closely follows Python and OpenAPI best practice for code style and syntax. PEP-8 compliant.
|
|
85
85
|
- Completely abstracts token management, automatically refreshing your token when it expires.
|
|
86
|
+
- Interact with newly released API operations not yet available in the library via the `override` method.
|
|
86
87
|
- Provides simple programmatic patterns for interacting with CrowdStrike Falcon APIs.
|
|
87
88
|
- Supports [cloud region autodiscovery](https://www.falconpy.io/Usage/Environment-Configuration.html#cloud-region-autodiscovery) for the CrowdStrike `US-1`, `US-2` and `EU-1` regions.
|
|
88
89
|
- Supports dynamic [configuration](https://www.falconpy.io/Usage/Environment-Configuration.html) based upon the needs of your environment.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: crowdstrike-falconpy-dev
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.3
|
|
4
4
|
Summary: The CrowdStrike Falcon SDK for Python 3
|
|
5
5
|
Home-page: https://github.com/CrowdStrike/falconpy
|
|
6
6
|
Author: CrowdStrike
|
|
@@ -36,9 +36,18 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
36
36
|
Classifier: Topic :: Utilities
|
|
37
37
|
Requires-Python: >=3.6
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
|
-
Provides-Extra: dev
|
|
40
39
|
License-File: LICENSE
|
|
41
40
|
License-File: AUTHORS.md
|
|
41
|
+
Requires-Dist: requests
|
|
42
|
+
Requires-Dist: urllib3
|
|
43
|
+
Provides-Extra: dev
|
|
44
|
+
Requires-Dist: flake8; extra == "dev"
|
|
45
|
+
Requires-Dist: coverage; extra == "dev"
|
|
46
|
+
Requires-Dist: pydocstyle; extra == "dev"
|
|
47
|
+
Requires-Dist: pylint; extra == "dev"
|
|
48
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
49
|
+
Requires-Dist: pytest; extra == "dev"
|
|
50
|
+
Requires-Dist: bandit; extra == "dev"
|
|
42
51
|
|
|
43
52
|

|
|
44
53
|
|
|
@@ -56,7 +65,7 @@ License-File: AUTHORS.md
|
|
|
56
65
|
[](https://github.com/CrowdStrike/falconpy/releases)
|
|
57
66
|
[](https://github.com/CrowdStrike/falconpy/graphs/code-frequency)
|
|
58
67
|
[](https://github.com/CrowdStrike/falconpy/commits/main)
|
|
59
|
-

|
|
68
|
+

|
|
60
69
|
|
|
61
70
|
The FalconPy SDK contains a collection of Python classes that abstract CrowdStrike Falcon OAuth2 API interaction, removing duplicative code and allowing developers to focus on just the logic of their solution requirements.
|
|
62
71
|
|
|
@@ -130,6 +139,7 @@ For each CrowdStrike Falcon API service collection, a matching Service Class is
|
|
|
130
139
|
|
|
131
140
|
- Closely follows Python and OpenAPI best practice for code style and syntax. PEP-8 compliant.
|
|
132
141
|
- Completely abstracts token management, automatically refreshing your token when it expires.
|
|
142
|
+
- Interact with newly released API operations not yet available in the library via the `override` method.
|
|
133
143
|
- Provides simple programmatic patterns for interacting with CrowdStrike Falcon APIs.
|
|
134
144
|
- Supports [cloud region autodiscovery](https://www.falconpy.io/Usage/Environment-Configuration.html#cloud-region-autodiscovery) for the CrowdStrike `US-1`, `US-2` and `EU-1` regions.
|
|
135
145
|
- Supports dynamic [configuration](https://www.falconpy.io/Usage/Environment-Configuration.html) based upon the needs of your environment.
|
|
@@ -41,11 +41,7 @@ For more information, please refer to <https://unlicense.org>
|
|
|
41
41
|
import time
|
|
42
42
|
import os
|
|
43
43
|
import warnings
|
|
44
|
-
from
|
|
45
|
-
try:
|
|
46
|
-
from simplejson import JSONDecodeError
|
|
47
|
-
except (ImportError, ModuleNotFoundError): # Support import as a module
|
|
48
|
-
from json.decoder import JSONDecodeError
|
|
44
|
+
from contextvars import copy_context
|
|
49
45
|
from logging import Logger, getLogger
|
|
50
46
|
from typing import Dict, Optional, Union
|
|
51
47
|
from ._base_falcon_auth import BaseFalconAuth
|
|
@@ -56,21 +52,23 @@ from ._interface_config import InterfaceConfiguration
|
|
|
56
52
|
from .._enum import TokenFailReason
|
|
57
53
|
from .._util import (
|
|
58
54
|
autodiscover_region,
|
|
55
|
+
confirm_base_url,
|
|
59
56
|
perform_request,
|
|
60
57
|
log_class_startup,
|
|
61
58
|
login_payloads,
|
|
62
|
-
logout_payloads
|
|
59
|
+
logout_payloads,
|
|
60
|
+
review_provided_credentials
|
|
63
61
|
)
|
|
64
|
-
from .._error import InvalidCredentials, NoAuthenticationMechanism
|
|
62
|
+
from .._error import InvalidCredentials, NoAuthenticationMechanism
|
|
65
63
|
|
|
66
64
|
|
|
67
|
-
# pylint: disable=R0902
|
|
65
|
+
# pylint: disable=R0902,R0904
|
|
68
66
|
class FalconInterface(BaseFalconAuth):
|
|
69
67
|
"""Standard Falcon API interface used by Service Classes."""
|
|
70
68
|
|
|
71
|
-
#
|
|
72
|
-
# |
|
|
73
|
-
# |
|
|
69
|
+
# _______ _____ __ _ _______ _______ ______ _ _ _______ _______ _____ ______
|
|
70
|
+
# | | | | \ | |______ | |_____/ | | | | | | |_____/
|
|
71
|
+
# |_____ |_____| | \_| ______| | | \_ |_____| |_____ | |_____| | \_
|
|
74
72
|
#
|
|
75
73
|
# The default constructor for all authentication objects. Ingests provided credentials
|
|
76
74
|
# and sets the necessary class attributes based upon the authentication detail received.
|
|
@@ -90,7 +88,8 @@ class FalconInterface(BaseFalconAuth):
|
|
|
90
88
|
debug: Optional[bool] = False,
|
|
91
89
|
debug_record_count: Optional[int] = None,
|
|
92
90
|
sanitize_log: Optional[bool] = None,
|
|
93
|
-
pythonic: Optional[bool] = False
|
|
91
|
+
pythonic: Optional[bool] = False,
|
|
92
|
+
environment: Optional[Dict[str, str]] = None
|
|
94
93
|
) -> "FalconInterface":
|
|
95
94
|
"""Construct an instance of the FalconInterface class."""
|
|
96
95
|
# Set the pythonic behavior mode.
|
|
@@ -98,12 +97,6 @@ class FalconInterface(BaseFalconAuth):
|
|
|
98
97
|
if isinstance(pythonic, bool):
|
|
99
98
|
self._pythonic = pythonic
|
|
100
99
|
|
|
101
|
-
# The default credential dictionary, where the client_id and client_secret are stored.
|
|
102
|
-
self._creds = {}
|
|
103
|
-
|
|
104
|
-
# Set up an empty Bearer Token container
|
|
105
|
-
self._token: BearerToken = BearerToken()
|
|
106
|
-
|
|
107
100
|
# Setup our configuration object using the provided keywords.
|
|
108
101
|
self._config: InterfaceConfiguration = InterfaceConfiguration(base_url=base_url,
|
|
109
102
|
proxy=proxy,
|
|
@@ -114,50 +107,87 @@ class FalconInterface(BaseFalconAuth):
|
|
|
114
107
|
# ____ _ _ ___ _ _ ____ _ _ ___ _ ____ ____ ___ _ ____ _ _ |
|
|
115
108
|
# |__| | | | |__| |___ |\ | | | | |__| | | | | |\ | / \
|
|
116
109
|
# | | |__| | | | |___ | \| | | |___ | | | | |__| | \|
|
|
117
|
-
#
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
#
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
elif isinstance(creds, dict):
|
|
137
|
-
self._creds: Dict[str, str] = creds
|
|
138
|
-
else:
|
|
139
|
-
raise InvalidCredentialFormat
|
|
140
|
-
|
|
141
|
-
# Legacy (Token) Authentication (fallback)
|
|
142
|
-
if access_token:
|
|
143
|
-
# Store this non-refreshable token, assuming it was just generated.
|
|
144
|
-
self._token: BearerToken = BearerToken(access_token, 1799, 201)
|
|
145
|
-
|
|
146
|
-
# Set the token renewal window, ignored when using Legacy Authentication.
|
|
147
|
-
self.renew_window: int = max(min(renew_window, MAX_TOKEN_RENEW_WINDOW),
|
|
148
|
-
MIN_TOKEN_RENEW_WINDOW
|
|
149
|
-
)
|
|
110
|
+
#
|
|
111
|
+
# Assume no credentials or tokens are provided.
|
|
112
|
+
# A NoAuthenticationMechanism warning will be generated if a
|
|
113
|
+
# valid authentication mechanism is not specified or detected.
|
|
114
|
+
#
|
|
115
|
+
# Then try to authenticate in the following order:
|
|
116
|
+
# 1. Direct
|
|
117
|
+
# 2. Credential
|
|
118
|
+
# 3. Token (Legacy)
|
|
119
|
+
# 4. Context (Foundry)
|
|
120
|
+
# 5. Environment
|
|
121
|
+
#
|
|
122
|
+
# Remaining authentication checks are skipped once a successful mechanism has been determined.
|
|
123
|
+
#
|
|
124
|
+
# Object Authentication is handled within the ServiceClass object and leverages the existing
|
|
125
|
+
# authentication used for the underlying authentication object attribute.
|
|
126
|
+
|
|
127
|
+
# Set up an empty Bearer Token container.
|
|
128
|
+
self._token: BearerToken = BearerToken()
|
|
150
129
|
|
|
151
|
-
#
|
|
152
|
-
#
|
|
130
|
+
# ___ _ ____ ____ ____ ___ ____ _ _ ___ ____ ____ ____ ___ ____ _ _ ___ _ ____ _
|
|
131
|
+
# | \ | |__/ |___ | | |__| |\ | | \ | |__/ |___ | \ |___ |\ | | | |__| |
|
|
132
|
+
# |__/ | | \ |___ |___ | | | | \| |__/ |___ | \ |___ |__/ |___ | \| | | | | |___
|
|
133
|
+
#
|
|
134
|
+
# Direct Authentication checks provided values and return a creds dictionary based upon the contents.
|
|
135
|
+
# Authorization is derived from the bearer token generated using the provided credentials.
|
|
136
|
+
self._creds, self._auth_style = review_provided_credentials(client_id, client_secret, creds, member_cid)
|
|
137
|
+
|
|
138
|
+
# ___ ____ _ _ ____ _ _
|
|
139
|
+
# | | | |_/ |___ |\ |
|
|
140
|
+
# | |__| | \_ |___ | \|
|
|
141
|
+
#
|
|
142
|
+
# Token (Legacy) Authentication
|
|
143
|
+
# Authorization is derived from the provided bearer token.
|
|
144
|
+
# A login event is unnecessary when using this authentication mechanism.
|
|
145
|
+
if not self.cred_format_valid:
|
|
146
|
+
if access_token:
|
|
147
|
+
# Store this non-refreshable token, assuming it was just generated.
|
|
148
|
+
self._token: BearerToken = BearerToken(access_token, 1799, 201)
|
|
149
|
+
self._auth_style = "TOKEN"
|
|
150
|
+
|
|
151
|
+
# ____ ____ _ _ ___ ____ _ _ ___
|
|
152
|
+
# | | | |\ | | |___ \/ |
|
|
153
|
+
# |___ |__| | \| | |___ _/\_ |
|
|
154
|
+
#
|
|
155
|
+
# Context Authentication searches the current running context for
|
|
156
|
+
# an object containing a bearer token as an attribute or property.
|
|
157
|
+
# Authorization is derived from the discovered bearer token.
|
|
158
|
+
# A login event is unnecessary when using this authentication mechanism.
|
|
159
|
+
if not self.cred_format_valid and not self.token_value:
|
|
160
|
+
for cvar in copy_context().values():
|
|
161
|
+
try:
|
|
162
|
+
# Any object is acceptable as long as it has an attribute or property named "access_token".
|
|
163
|
+
self._token: BearerToken = BearerToken(cvar.access_token, 1799, 201)
|
|
164
|
+
# Attempt to retrieve the cloud region from the same object.
|
|
165
|
+
# Fall back to our previously set default on failure.
|
|
166
|
+
try:
|
|
167
|
+
if cvar.cs_cloud:
|
|
168
|
+
self._config.base_url = confirm_base_url(cvar.cs_cloud)
|
|
169
|
+
except AttributeError:
|
|
170
|
+
pass
|
|
171
|
+
self._auth_style = "CONTEXT"
|
|
172
|
+
break
|
|
173
|
+
except AttributeError:
|
|
174
|
+
pass
|
|
175
|
+
|
|
176
|
+
# ____ _ _ _ _ _ ____ ____ _ _ _ _ ____ _ _ ___
|
|
177
|
+
# |___ |\ | | | | |__/ | | |\ | |\/| |___ |\ | |
|
|
178
|
+
# |___ | \| \/ | | \ |__| | \| | | |___ | \| |
|
|
179
|
+
#
|
|
180
|
+
# Environment Authentication searches the current environment for variables containing credentials.
|
|
181
|
+
# Authorization is derived from the bearer token generated using the discovered credentials.
|
|
182
|
+
# Developers may customize which variable names are searched by leveraging the environment keyword (dictionary).
|
|
183
|
+
self._environment = environment if environment else {}
|
|
153
184
|
if not self.cred_format_valid and not self.token_value:
|
|
154
185
|
# Both variables must be present within the running environment.
|
|
155
|
-
if os.getenv("
|
|
156
|
-
api_id = os.getenv("
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
api_sec = self.creds["client_secret"]
|
|
186
|
+
if os.getenv(f"{self.env_prefix}{self.env_key}") and os.getenv(f"{self.env_prefix}{self.env_secret}"):
|
|
187
|
+
api_id = os.getenv(f"{self.env_prefix}{self.env_key}") \
|
|
188
|
+
if "client_id" not in self.creds else self.creds["client_id"]
|
|
189
|
+
api_sec = os.getenv(f"{self.env_prefix}{self.env_secret}") \
|
|
190
|
+
if "client_secret" not in self.creds else self.creds["client_secret"]
|
|
161
191
|
# Environment Authentication will not override values that preexist in the creds dictionary.
|
|
162
192
|
self._creds = {
|
|
163
193
|
"client_id": api_id,
|
|
@@ -166,7 +196,17 @@ class FalconInterface(BaseFalconAuth):
|
|
|
166
196
|
# Provide member_cid for MSSP environment authentication scenarios. Issue #1105.
|
|
167
197
|
if member_cid:
|
|
168
198
|
self._creds["member_cid"] = member_cid
|
|
199
|
+
self._auth_style = "ENVIRONMENT"
|
|
200
|
+
|
|
201
|
+
# Set the token renewal window, ignored when using Legacy or Context Authentication.
|
|
202
|
+
self.renew_window: int = max(min(renew_window, MAX_TOKEN_RENEW_WINDOW),
|
|
203
|
+
MIN_TOKEN_RENEW_WINDOW
|
|
204
|
+
)
|
|
169
205
|
|
|
206
|
+
# _ ____ ____ ____ _ _ _ ____
|
|
207
|
+
# | | | | __ | __ | |\ | | __
|
|
208
|
+
# |___ |__| |__] |__] | | \| |__]
|
|
209
|
+
#
|
|
170
210
|
# Log the creation of this object if debugging is enabled.
|
|
171
211
|
# Starting with v1.3.0 minimal Python native logging is available. In order to reduce
|
|
172
212
|
# potential impacts to developer configurations, this facility is extremely limited
|
|
@@ -188,27 +228,34 @@ class FalconInterface(BaseFalconAuth):
|
|
|
188
228
|
# Set up an empty log facility
|
|
189
229
|
self._log: LogFacility = LogFacility()
|
|
190
230
|
|
|
231
|
+
# _ _ ____ _ _ ___ ____ ___ ____
|
|
232
|
+
# | | |__| | | | \ |__| | |___
|
|
233
|
+
# \/ | | |___ | |__/ | | | |___
|
|
234
|
+
#
|
|
235
|
+
# Validation occurs after the logging object is created.
|
|
191
236
|
try:
|
|
237
|
+
# Check to see if we have a valid authentication mechanism configured.
|
|
192
238
|
if not self.cred_format_valid and not self.token_value:
|
|
193
239
|
raise NoAuthenticationMechanism
|
|
194
240
|
except NoAuthenticationMechanism as no_auth_mechanism:
|
|
241
|
+
# Warn appropriately if we do not.
|
|
195
242
|
if pythonic:
|
|
196
243
|
warnings.warn(no_auth_mechanism.message, NoAuthenticationMechanism, stacklevel=2)
|
|
197
244
|
if self.log:
|
|
198
245
|
self.log.warning(no_auth_mechanism.message)
|
|
199
246
|
|
|
200
|
-
#
|
|
201
|
-
#
|
|
202
|
-
#
|
|
247
|
+
# _______ _______ _______ _ _ _____ ______ _______
|
|
248
|
+
# | | | |______ | |_____| | | | \ |______
|
|
249
|
+
# | | | |______ | | | |_____| |_____/ ______|
|
|
203
250
|
#
|
|
204
251
|
# The generic login and logout handlers are provided here and leverage private methods
|
|
205
252
|
# to perform the operation. These private methods can be overridden to provide individual
|
|
206
253
|
# login and logout functionality to different inheriting class types.
|
|
207
|
-
def login(self) -> dict
|
|
254
|
+
def login(self) -> Union[dict, bool]:
|
|
208
255
|
"""Login to the Falcon API by requesting a new token."""
|
|
209
256
|
return self._login_handler()
|
|
210
257
|
|
|
211
|
-
def logout(self) -> dict
|
|
258
|
+
def logout(self) -> Union[dict, bool]:
|
|
212
259
|
"""Log out of the Falcon API by revoking the current token."""
|
|
213
260
|
return self._logout_handler()
|
|
214
261
|
|
|
@@ -299,9 +346,9 @@ class FalconInterface(BaseFalconAuth):
|
|
|
299
346
|
|
|
300
347
|
return returned
|
|
301
348
|
|
|
302
|
-
#
|
|
303
|
-
# |
|
|
304
|
-
# |
|
|
349
|
+
# _____ ______ _____ _____ _______ ______ _______ _____ _______ _______
|
|
350
|
+
# |_____] |_____/ | | |_____] |______ |_____/ | | |______ |______
|
|
351
|
+
# | | \_ |_____| | |______ | \_ | __|__ |______ ______|
|
|
305
352
|
#
|
|
306
353
|
# These properties are present in all FalconInterface derivatives.
|
|
307
354
|
@property
|
|
@@ -327,47 +374,47 @@ class FalconInterface(BaseFalconAuth):
|
|
|
327
374
|
@property
|
|
328
375
|
def base_url(self) -> str:
|
|
329
376
|
"""Return the base URL for this interface from the configuration object."""
|
|
330
|
-
return self.
|
|
377
|
+
return self.config.base_url
|
|
331
378
|
|
|
332
379
|
@base_url.setter
|
|
333
380
|
def base_url(self, value):
|
|
334
|
-
self.
|
|
381
|
+
self.config.base_url = value
|
|
335
382
|
|
|
336
383
|
@property
|
|
337
384
|
def ssl_verify(self) -> bool:
|
|
338
385
|
"""Return the SSL verification setting from the configuration object."""
|
|
339
|
-
return self.
|
|
386
|
+
return self.config.ssl_verify
|
|
340
387
|
|
|
341
388
|
@ssl_verify.setter
|
|
342
389
|
def ssl_verify(self, value: bool):
|
|
343
|
-
self.
|
|
390
|
+
self.config.ssl_verify = value
|
|
344
391
|
|
|
345
392
|
@property
|
|
346
393
|
def proxy(self) -> Dict[str, str]:
|
|
347
394
|
"""Return the current proxy setting."""
|
|
348
|
-
return self.
|
|
395
|
+
return self.config.proxy
|
|
349
396
|
|
|
350
397
|
@proxy.setter
|
|
351
398
|
def proxy(self, value: Dict[str, str]):
|
|
352
|
-
self.
|
|
399
|
+
self.config.proxy = value
|
|
353
400
|
|
|
354
401
|
@property
|
|
355
402
|
def user_agent(self) -> str:
|
|
356
403
|
"""Return the current user agent setting."""
|
|
357
|
-
return self.
|
|
404
|
+
return self.config.user_agent
|
|
358
405
|
|
|
359
406
|
@user_agent.setter
|
|
360
407
|
def user_agent(self, value: str):
|
|
361
|
-
self.
|
|
408
|
+
self.config.user_agent = value
|
|
362
409
|
|
|
363
410
|
@property
|
|
364
411
|
def timeout(self) -> Union[int, tuple]:
|
|
365
412
|
"""Return the current timeout setting."""
|
|
366
|
-
return self.
|
|
413
|
+
return self.config.timeout
|
|
367
414
|
|
|
368
415
|
@timeout.setter
|
|
369
416
|
def timeout(self, value: Union[int, tuple]):
|
|
370
|
-
self.
|
|
417
|
+
self.config.timeout = value
|
|
371
418
|
|
|
372
419
|
@property
|
|
373
420
|
def debug_record_count(self) -> int:
|
|
@@ -452,6 +499,16 @@ class FalconInterface(BaseFalconAuth):
|
|
|
452
499
|
def token_value(self, value: str):
|
|
453
500
|
self.bearer_token.value = value
|
|
454
501
|
|
|
502
|
+
@property
|
|
503
|
+
def pythonic(self) -> bool:
|
|
504
|
+
"""Return a boolean if we are in a pythonic mode."""
|
|
505
|
+
return self._pythonic
|
|
506
|
+
|
|
507
|
+
@pythonic.setter
|
|
508
|
+
def pythonic(self, value: bool):
|
|
509
|
+
"""Enable or disable pythonic mode."""
|
|
510
|
+
self._pythonic = value
|
|
511
|
+
|
|
455
512
|
# All properties defined here are by design IMMUTABLE.
|
|
456
513
|
@property
|
|
457
514
|
def refreshable(self) -> bool:
|
|
@@ -503,11 +560,21 @@ class FalconInterface(BaseFalconAuth):
|
|
|
503
560
|
return bool(self.log)
|
|
504
561
|
|
|
505
562
|
@property
|
|
506
|
-
def
|
|
507
|
-
"""Return
|
|
508
|
-
return self.
|
|
563
|
+
def env_prefix(self) -> str:
|
|
564
|
+
"""Return the environment prefix."""
|
|
565
|
+
return self._environment.get("prefix", "FALCON_")
|
|
509
566
|
|
|
510
|
-
@
|
|
511
|
-
def
|
|
512
|
-
"""
|
|
513
|
-
self.
|
|
567
|
+
@property
|
|
568
|
+
def env_key(self) -> str:
|
|
569
|
+
"""Return the environment API key name."""
|
|
570
|
+
return self._environment.get("id_name", "CLIENT_ID")
|
|
571
|
+
|
|
572
|
+
@property
|
|
573
|
+
def env_secret(self) -> str:
|
|
574
|
+
"""Return the environment API key secret."""
|
|
575
|
+
return self._environment.get("secret_name", "CLIENT_SECRET")
|
|
576
|
+
|
|
577
|
+
@property
|
|
578
|
+
def auth_style(self) -> str:
|
|
579
|
+
"""Return the authentication mechanism used to instantiate this object."""
|
|
580
|
+
return self._auth_style
|
|
@@ -77,7 +77,8 @@ class UberInterface(FalconInterface):
|
|
|
77
77
|
debug: Optional[bool] = False,
|
|
78
78
|
debug_record_count: Optional[int] = MAX_DEBUG_RECORDS,
|
|
79
79
|
sanitize_log: Optional[bool] = None,
|
|
80
|
-
pythonic: Optional[bool] = None
|
|
80
|
+
pythonic: Optional[bool] = None,
|
|
81
|
+
environment: Optional[Dict[str, str]] = None
|
|
81
82
|
):
|
|
82
83
|
"""Construct an instance of the UberInterface class.
|
|
83
84
|
|
|
@@ -126,7 +127,8 @@ class UberInterface(FalconInterface):
|
|
|
126
127
|
debug=debug,
|
|
127
128
|
debug_record_count=debug_record_count,
|
|
128
129
|
sanitize_log=sanitize_log,
|
|
129
|
-
pythonic=pythonic
|
|
130
|
+
pythonic=pythonic,
|
|
131
|
+
environment=environment
|
|
130
132
|
)
|
|
131
133
|
|
|
132
134
|
# Complete list of available API operations.
|
|
@@ -169,7 +169,8 @@ _alerts_endpoints = [
|
|
|
169
169
|
"in": "query"
|
|
170
170
|
},
|
|
171
171
|
{
|
|
172
|
-
"description": "request body takes a list of action parameter request that is applied against all
|
|
172
|
+
"description": "request body takes a list of action parameter request that is applied against all "
|
|
173
|
+
"\"composite_ids\" provided",
|
|
173
174
|
"name": "body",
|
|
174
175
|
"in": "body",
|
|
175
176
|
"required": True
|