crowdstrike-falconpy-dev 1.4.2__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.2/src/crowdstrike_falconpy_dev.egg-info → crowdstrike-falconpy-dev-1.4.3}/PKG-INFO +11 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3/src/crowdstrike_falconpy_dev.egg-info}/PKG-INFO +11 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_falcon_interface.py +131 -81
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_images.py +4 -4
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_cspm_registration.py +18 -4
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_d4c_registration.py +14 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_filevantage.py +8 -8
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_kubernetes_protection.py +8 -7
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_message_center.py +2 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_filevantage.py +7 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/_service_class.py +21 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/__init__.py +2 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_auth.py +45 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_functions.py +15 -8
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_version.py +1 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cspm_registration.py +61 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/d4c_registration.py +61 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/filevantage.py +78 -44
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/kubernetes_protection.py +4 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/workflows.py +11 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_authentications.py +3 -13
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_detections.py +3 -3
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_packages.py +1 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_vulnerabilities.py +1 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cspm_registration.py +1 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_d4c_registration.py +2 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_drift_indicators.py +1 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_result_object.py +2 -5
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_uber.py +3 -2
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_unidentified_containers.py +1 -1
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_workflows.py +3 -1
- crowdstrike-falconpy-dev-1.4.3/tests/test_zero_trust_assessment.py +82 -0
- crowdstrike-falconpy-dev-1.4.2/tests/test_zero_trust_assessment.py +0 -50
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/AUTHORS.md +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/LICENSE +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/README.md +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/dev_setup.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/setup.cfg +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/setup.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/SOURCES.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/dependency_links.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/requires.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/crowdstrike_falconpy_dev.egg-info/top_level.txt +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_behavior.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_connection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_meta.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_payloads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_api_request/_request_validator.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_base_falcon_auth.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_bearer_token.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_interface_config.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_auth_object/_uber_interface.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_constant/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_cloud_snapshots.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_detections.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_packages.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_container_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_discover.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_drift_indicators.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falcon_complete_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_foundry_logscale.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_intel.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_oauth2.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_prevention_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_download.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_update_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_unidentified_containers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_user_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_workflows.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_discover.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_mapping.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_endpoint/deprecated/_zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_base_url.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_container_base_url.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_enum/_token_fail_reason.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/_exceptions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_error/_warnings.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_log/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_log/_facility.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cloud_snapshots.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_cspm_registration.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_d4c_registration.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_device_control_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_falconx.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_firewall.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_foundry.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_generic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_response_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_payload/_workflows.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/__base_resource.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_base_dictionary.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_errors.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_expanded_result.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_headers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_meta.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_resources.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_response_component.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_result/_result.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_service_class/_base_service_class.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_service.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/_uber.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/__init__.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/_advanced.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/api_complete/_legacy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/cloud_snapshots.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_detections.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_images.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_packages.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/container_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/debug.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/discover.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/drift_indicators.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falcon_complete_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/foundry_logscale.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/intel.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/oauth2.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_download.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/unidentified_containers.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/user_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/zero_trust_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_api_request.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_authorization.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cloud_connect_aws.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_cloud_snapshots.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_configuration_assessment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_configuration_assessment_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_alerts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_container_images.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_custom_ioa.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_custom_storage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_detects.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_device_control_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_discover.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_event_streams.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falcon_complete_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falcon_container.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_falconx_sandbox.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_fdr.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_filevantage.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_firewall_management.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_firewall_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_foundry_logscale.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_host_group.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_hosts.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_identity_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_image_assessment_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_incidents.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_installation_tokens.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_intel.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ioa_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ioc.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_iocs.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_kubernetes_protection.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_malquery.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_message_center.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ml_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_mobile_enrollment.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_mssp.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_ods.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_overwatch_dashboard.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_prevention_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_quarantine.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_quick_scan.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response_admin.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_real_time_response_audit.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_recon.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_report_executions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_response_policies.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sample_uploads.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_scheduled_reports.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_download.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_update_policy.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_sensor_visibility_exclusions.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_service_class.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_spotlight_evaluation_logic.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_spotlight_vulnerabilities.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_tailored_intelligence.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_timeout.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_uber_api_complete.py +0 -0
- {crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/tests/test_user_management.py +0 -0
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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.
|
|
@@ -99,12 +97,6 @@ class FalconInterface(BaseFalconAuth):
|
|
|
99
97
|
if isinstance(pythonic, bool):
|
|
100
98
|
self._pythonic = pythonic
|
|
101
99
|
|
|
102
|
-
# The default credential dictionary, where the client_id and client_secret are stored.
|
|
103
|
-
self._creds = {}
|
|
104
|
-
|
|
105
|
-
# Set up an empty Bearer Token container
|
|
106
|
-
self._token: BearerToken = BearerToken()
|
|
107
|
-
|
|
108
100
|
# Setup our configuration object using the provided keywords.
|
|
109
101
|
self._config: InterfaceConfiguration = InterfaceConfiguration(base_url=base_url,
|
|
110
102
|
proxy=proxy,
|
|
@@ -115,44 +107,80 @@ class FalconInterface(BaseFalconAuth):
|
|
|
115
107
|
# ____ _ _ ___ _ _ ____ _ _ ___ _ ____ ____ ___ _ ____ _ _ |
|
|
116
108
|
# |__| | | | |__| |___ |\ | | | | |__| | | | | |\ | / \
|
|
117
109
|
# | | |__| | | | |___ | \| | | |___ | | | | |__| | \|
|
|
118
|
-
#
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
#
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
elif isinstance(creds, dict):
|
|
138
|
-
self._creds: Dict[str, str] = creds
|
|
139
|
-
else:
|
|
140
|
-
raise InvalidCredentialFormat
|
|
141
|
-
|
|
142
|
-
# Legacy (Token) Authentication (fallback)
|
|
143
|
-
if access_token:
|
|
144
|
-
# Store this non-refreshable token, assuming it was just generated.
|
|
145
|
-
self._token: BearerToken = BearerToken(access_token, 1799, 201)
|
|
146
|
-
|
|
147
|
-
# Set the token renewal window, ignored when using Legacy Authentication.
|
|
148
|
-
self.renew_window: int = max(min(renew_window, MAX_TOKEN_RENEW_WINDOW),
|
|
149
|
-
MIN_TOKEN_RENEW_WINDOW
|
|
150
|
-
)
|
|
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()
|
|
151
129
|
|
|
152
|
-
#
|
|
153
|
-
#
|
|
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).
|
|
154
183
|
self._environment = environment if environment else {}
|
|
155
|
-
# When credentials are not provided, attempt to retrieve them from the environment.
|
|
156
184
|
if not self.cred_format_valid and not self.token_value:
|
|
157
185
|
# Both variables must be present within the running environment.
|
|
158
186
|
if os.getenv(f"{self.env_prefix}{self.env_key}") and os.getenv(f"{self.env_prefix}{self.env_secret}"):
|
|
@@ -168,7 +196,17 @@ class FalconInterface(BaseFalconAuth):
|
|
|
168
196
|
# Provide member_cid for MSSP environment authentication scenarios. Issue #1105.
|
|
169
197
|
if member_cid:
|
|
170
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
|
+
)
|
|
171
205
|
|
|
206
|
+
# _ ____ ____ ____ _ _ _ ____
|
|
207
|
+
# | | | | __ | __ | |\ | | __
|
|
208
|
+
# |___ |__| |__] |__] | | \| |__]
|
|
209
|
+
#
|
|
172
210
|
# Log the creation of this object if debugging is enabled.
|
|
173
211
|
# Starting with v1.3.0 minimal Python native logging is available. In order to reduce
|
|
174
212
|
# potential impacts to developer configurations, this facility is extremely limited
|
|
@@ -190,27 +228,34 @@ class FalconInterface(BaseFalconAuth):
|
|
|
190
228
|
# Set up an empty log facility
|
|
191
229
|
self._log: LogFacility = LogFacility()
|
|
192
230
|
|
|
231
|
+
# _ _ ____ _ _ ___ ____ ___ ____
|
|
232
|
+
# | | |__| | | | \ |__| | |___
|
|
233
|
+
# \/ | | |___ | |__/ | | | |___
|
|
234
|
+
#
|
|
235
|
+
# Validation occurs after the logging object is created.
|
|
193
236
|
try:
|
|
237
|
+
# Check to see if we have a valid authentication mechanism configured.
|
|
194
238
|
if not self.cred_format_valid and not self.token_value:
|
|
195
239
|
raise NoAuthenticationMechanism
|
|
196
240
|
except NoAuthenticationMechanism as no_auth_mechanism:
|
|
241
|
+
# Warn appropriately if we do not.
|
|
197
242
|
if pythonic:
|
|
198
243
|
warnings.warn(no_auth_mechanism.message, NoAuthenticationMechanism, stacklevel=2)
|
|
199
244
|
if self.log:
|
|
200
245
|
self.log.warning(no_auth_mechanism.message)
|
|
201
246
|
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
#
|
|
247
|
+
# _______ _______ _______ _ _ _____ ______ _______
|
|
248
|
+
# | | | |______ | |_____| | | | \ |______
|
|
249
|
+
# | | | |______ | | | |_____| |_____/ ______|
|
|
205
250
|
#
|
|
206
251
|
# The generic login and logout handlers are provided here and leverage private methods
|
|
207
252
|
# to perform the operation. These private methods can be overridden to provide individual
|
|
208
253
|
# login and logout functionality to different inheriting class types.
|
|
209
|
-
def login(self) -> dict
|
|
254
|
+
def login(self) -> Union[dict, bool]:
|
|
210
255
|
"""Login to the Falcon API by requesting a new token."""
|
|
211
256
|
return self._login_handler()
|
|
212
257
|
|
|
213
|
-
def logout(self) -> dict
|
|
258
|
+
def logout(self) -> Union[dict, bool]:
|
|
214
259
|
"""Log out of the Falcon API by revoking the current token."""
|
|
215
260
|
return self._logout_handler()
|
|
216
261
|
|
|
@@ -301,9 +346,9 @@ class FalconInterface(BaseFalconAuth):
|
|
|
301
346
|
|
|
302
347
|
return returned
|
|
303
348
|
|
|
304
|
-
#
|
|
305
|
-
# |
|
|
306
|
-
# |
|
|
349
|
+
# _____ ______ _____ _____ _______ ______ _______ _____ _______ _______
|
|
350
|
+
# |_____] |_____/ | | |_____] |______ |_____/ | | |______ |______
|
|
351
|
+
# | | \_ |_____| | |______ | \_ | __|__ |______ ______|
|
|
307
352
|
#
|
|
308
353
|
# These properties are present in all FalconInterface derivatives.
|
|
309
354
|
@property
|
|
@@ -329,47 +374,47 @@ class FalconInterface(BaseFalconAuth):
|
|
|
329
374
|
@property
|
|
330
375
|
def base_url(self) -> str:
|
|
331
376
|
"""Return the base URL for this interface from the configuration object."""
|
|
332
|
-
return self.
|
|
377
|
+
return self.config.base_url
|
|
333
378
|
|
|
334
379
|
@base_url.setter
|
|
335
380
|
def base_url(self, value):
|
|
336
|
-
self.
|
|
381
|
+
self.config.base_url = value
|
|
337
382
|
|
|
338
383
|
@property
|
|
339
384
|
def ssl_verify(self) -> bool:
|
|
340
385
|
"""Return the SSL verification setting from the configuration object."""
|
|
341
|
-
return self.
|
|
386
|
+
return self.config.ssl_verify
|
|
342
387
|
|
|
343
388
|
@ssl_verify.setter
|
|
344
389
|
def ssl_verify(self, value: bool):
|
|
345
|
-
self.
|
|
390
|
+
self.config.ssl_verify = value
|
|
346
391
|
|
|
347
392
|
@property
|
|
348
393
|
def proxy(self) -> Dict[str, str]:
|
|
349
394
|
"""Return the current proxy setting."""
|
|
350
|
-
return self.
|
|
395
|
+
return self.config.proxy
|
|
351
396
|
|
|
352
397
|
@proxy.setter
|
|
353
398
|
def proxy(self, value: Dict[str, str]):
|
|
354
|
-
self.
|
|
399
|
+
self.config.proxy = value
|
|
355
400
|
|
|
356
401
|
@property
|
|
357
402
|
def user_agent(self) -> str:
|
|
358
403
|
"""Return the current user agent setting."""
|
|
359
|
-
return self.
|
|
404
|
+
return self.config.user_agent
|
|
360
405
|
|
|
361
406
|
@user_agent.setter
|
|
362
407
|
def user_agent(self, value: str):
|
|
363
|
-
self.
|
|
408
|
+
self.config.user_agent = value
|
|
364
409
|
|
|
365
410
|
@property
|
|
366
411
|
def timeout(self) -> Union[int, tuple]:
|
|
367
412
|
"""Return the current timeout setting."""
|
|
368
|
-
return self.
|
|
413
|
+
return self.config.timeout
|
|
369
414
|
|
|
370
415
|
@timeout.setter
|
|
371
416
|
def timeout(self, value: Union[int, tuple]):
|
|
372
|
-
self.
|
|
417
|
+
self.config.timeout = value
|
|
373
418
|
|
|
374
419
|
@property
|
|
375
420
|
def debug_record_count(self) -> int:
|
|
@@ -454,6 +499,16 @@ class FalconInterface(BaseFalconAuth):
|
|
|
454
499
|
def token_value(self, value: str):
|
|
455
500
|
self.bearer_token.value = value
|
|
456
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
|
+
|
|
457
512
|
# All properties defined here are by design IMMUTABLE.
|
|
458
513
|
@property
|
|
459
514
|
def refreshable(self) -> bool:
|
|
@@ -504,16 +559,6 @@ class FalconInterface(BaseFalconAuth):
|
|
|
504
559
|
"""Return a boolean if we are in a debug mode."""
|
|
505
560
|
return bool(self.log)
|
|
506
561
|
|
|
507
|
-
@property
|
|
508
|
-
def pythonic(self) -> bool:
|
|
509
|
-
"""Return a boolean if we are in a pythonic mode."""
|
|
510
|
-
return self._pythonic
|
|
511
|
-
|
|
512
|
-
@pythonic.setter
|
|
513
|
-
def pythonic(self, value: bool):
|
|
514
|
-
"""Enable or disable pythonic mode."""
|
|
515
|
-
self._pythonic = value
|
|
516
|
-
|
|
517
562
|
@property
|
|
518
563
|
def env_prefix(self) -> str:
|
|
519
564
|
"""Return the environment prefix."""
|
|
@@ -528,3 +573,8 @@ class FalconInterface(BaseFalconAuth):
|
|
|
528
573
|
def env_secret(self) -> str:
|
|
529
574
|
"""Return the environment API key secret."""
|
|
530
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
|
|
@@ -249,10 +249,10 @@ _container_images_endpoints = [
|
|
|
249
249
|
},
|
|
250
250
|
{
|
|
251
251
|
"type": "string",
|
|
252
|
-
"description": "The fields to sort the records on. Supported columns: [base_os cid
|
|
253
|
-
"
|
|
254
|
-
"
|
|
255
|
-
"
|
|
252
|
+
"description": "The fields to sort the records on. Supported columns: [base_os cid detections "
|
|
253
|
+
"firstScanned first_seen highest_cps_current_rating highest_detection_severity highest_vulnerability_severity "
|
|
254
|
+
"image_digest image_id last_seen layers_with_vulnerabilities packages registry repository tag "
|
|
255
|
+
"vulnerabilities]",
|
|
256
256
|
"name": "sort",
|
|
257
257
|
"in": "query"
|
|
258
258
|
}
|
|
@@ -767,6 +767,20 @@ _cspm_registration_endpoints = [
|
|
|
767
767
|
}
|
|
768
768
|
]
|
|
769
769
|
],
|
|
770
|
+
[
|
|
771
|
+
"UpdateCSPMGCPServiceAccountsExt",
|
|
772
|
+
"PATCH",
|
|
773
|
+
"/cloud-connect-cspm-gcp/entities/service-accounts/v1",
|
|
774
|
+
"Patches the service account key for external clients.",
|
|
775
|
+
"cspm_registration",
|
|
776
|
+
[
|
|
777
|
+
{
|
|
778
|
+
"name": "body",
|
|
779
|
+
"in": "body",
|
|
780
|
+
"required": True
|
|
781
|
+
}
|
|
782
|
+
]
|
|
783
|
+
],
|
|
770
784
|
[
|
|
771
785
|
"ValidateCSPMGCPServiceAccountExt",
|
|
772
786
|
"POST",
|
|
@@ -1161,10 +1175,10 @@ _cspm_registration_endpoints = [
|
|
|
1161
1175
|
[
|
|
1162
1176
|
{
|
|
1163
1177
|
"type": "string",
|
|
1164
|
-
"description": "
|
|
1165
|
-
"
|
|
1166
|
-
"\ncustom_policy_id\nis_managed\npolicy_id\npolicy_type\nresource_id\nregion\nstatus\
|
|
1167
|
-
"
|
|
1178
|
+
"description": "use_current_scan_ids - *use this to get records for latest scans (ignored when "
|
|
1179
|
+
"next_token is set)*\naccount_name\naccount_id\nagent_id\nattack_types\nazure_subscription_id\ncloud_provider\n "
|
|
1180
|
+
"cloud_service_keyword\ncustom_policy_id\nis_managed\npolicy_id\npolicy_type\nresource_id\nregion\nstatus\nscan "
|
|
1181
|
+
"_time\nseverity\nseverity_string\n",
|
|
1168
1182
|
"name": "filter",
|
|
1169
1183
|
"in": "query"
|
|
1170
1184
|
},
|
|
@@ -541,6 +541,20 @@ _d4c_registration_endpoints = [
|
|
|
541
541
|
}
|
|
542
542
|
]
|
|
543
543
|
],
|
|
544
|
+
[
|
|
545
|
+
"UpdateD4CGCPServiceAccountsExt",
|
|
546
|
+
"PATCH",
|
|
547
|
+
"/cloud-connect-gcp/entities/service-accounts/v1",
|
|
548
|
+
"Patches the service account key for external clients.",
|
|
549
|
+
"d4c_registration",
|
|
550
|
+
[
|
|
551
|
+
{
|
|
552
|
+
"name": "body",
|
|
553
|
+
"in": "body",
|
|
554
|
+
"required": True
|
|
555
|
+
}
|
|
556
|
+
]
|
|
557
|
+
],
|
|
544
558
|
[
|
|
545
559
|
"GetD4CGCPUserScriptsAttachment",
|
|
546
560
|
"GET",
|
|
@@ -445,10 +445,10 @@ _filevantage_endpoints = [
|
|
|
445
445
|
" be monitored. Listed files must match the file include pattern and not match the file exclude pattern\n\n * "
|
|
446
446
|
"`content_registry_values` represents the registry values whose content will be monitored. Listed registry "
|
|
447
447
|
"values must match the registry include pattern and not match the registry exclude pattern\n\n * "
|
|
448
|
-
"`enable_content_capture`\n\nFile system directory monitoring:\n\n *
|
|
449
|
-
"`
|
|
450
|
-
"`watch_attributes_directory_changes` (`macOS` is not supported at this
|
|
451
|
-
"`watch_permissions_directory_changes` (`macOS` is not supported at this time)\n\nFile system file "
|
|
448
|
+
"`enable_content_capture`\n\n * `enable_hash_capture`\n\nFile system directory monitoring:\n\n * "
|
|
449
|
+
"`watch_delete_directory_changes`\n\n * `watch_create_directory_changes`\n\n * "
|
|
450
|
+
"`watch_rename_directory_changes`\n\n * `watch_attributes_directory_changes` (`macOS` is not supported at this "
|
|
451
|
+
"time)\n\n * `watch_permissions_directory_changes` (`macOS` is not supported at this time)\n\nFile system file "
|
|
452
452
|
"monitoring:\n\n * `watch_rename_file_changes`\n\n * `watch_write_file_changes`\n\n * "
|
|
453
453
|
"`watch_create_file_changes`\n\n * `watch_delete_file_changes`\n\n * `watch_attributes_file_changes` (`macOS` "
|
|
454
454
|
"is not supported at this time)\n\n * `watch_permissions_file_changes` (`macOS` is not supported at this "
|
|
@@ -488,10 +488,10 @@ _filevantage_endpoints = [
|
|
|
488
488
|
"files that will be monitored. Listed files must match the file include pattern and not match the file exclude "
|
|
489
489
|
"pattern\n\n * `content_registry_values` represents the registry values whose content will be monitored. Listed "
|
|
490
490
|
" registry values must match the registry include pattern and not match the registry exclude pattern\n\n * "
|
|
491
|
-
"`enable_content_capture`\n\nFile system directory monitoring:\n\n *
|
|
492
|
-
"`
|
|
493
|
-
"`watch_attributes_directory_changes` (`macOS` is not supported at this
|
|
494
|
-
"`watch_permissions_directory_changes` (`macOS` is not supported at this time)\n\nFile system file "
|
|
491
|
+
"`enable_content_capture`\n\n * `enable_hash_capture`\n\nFile system directory monitoring:\n\n * "
|
|
492
|
+
"`watch_delete_directory_changes`\n\n * `watch_create_directory_changes`\n\n * "
|
|
493
|
+
"`watch_rename_directory_changes`\n\n * `watch_attributes_directory_changes` (`macOS` is not supported at this "
|
|
494
|
+
"time)\n\n * `watch_permissions_directory_changes` (`macOS` is not supported at this time)\n\nFile system file "
|
|
495
495
|
"monitoring:\n\n * `watch_rename_file_changes`\n\n * `watch_write_file_changes`\n\n * "
|
|
496
496
|
"`watch_create_file_changes`\n\n * `watch_delete_file_changes`\n\n * `watch_attributes_file_changes` (`macOS` "
|
|
497
497
|
"is not supported at this time)\n\n * `watch_permissions_file_changes` (`macOS` is not supported at this "
|
|
@@ -57,8 +57,8 @@ _kubernetes_protection_endpoints = [
|
|
|
57
57
|
"type": "string",
|
|
58
58
|
"description": "Retrieve count of Kubernetes clusters that match a query in Falcon Query Language "
|
|
59
59
|
"(FQL). Supported filters: access,agent_status,cid,cloud_account_id,cloud_name,cloud_region,cluster_id,cluster"
|
|
60
|
-
"_name,cluster_status,container_count,kubernetes_version,last_seen, management_status, node_count,
|
|
61
|
-
"tags",
|
|
60
|
+
"_name,cluster_status,container_count,iar_coverage,kubernetes_version,last_seen, management_status, node_count,"
|
|
61
|
+
"pod_count, tags",
|
|
62
62
|
"name": "filter",
|
|
63
63
|
"in": "query"
|
|
64
64
|
}
|
|
@@ -75,8 +75,8 @@ _kubernetes_protection_endpoints = [
|
|
|
75
75
|
"type": "string",
|
|
76
76
|
"description": "Retrieve count of Kubernetes clusters that match a query in Falcon Query Language "
|
|
77
77
|
"(FQL). Supported filters: access,agent_status,cid,cloud_account_id,cloud_name,cloud_region,cluster_id,cluster"
|
|
78
|
-
"_name,cluster_status,container_count,kubernetes_version,last_seen, management_status, node_count,
|
|
79
|
-
"tags",
|
|
78
|
+
"_name,cluster_status,container_count,iar_coverage,kubernetes_version,last_seen, management_status, node_count,"
|
|
79
|
+
"pod_count, tags",
|
|
80
80
|
"name": "filter",
|
|
81
81
|
"in": "query"
|
|
82
82
|
}
|
|
@@ -93,8 +93,8 @@ _kubernetes_protection_endpoints = [
|
|
|
93
93
|
"type": "string",
|
|
94
94
|
"description": "Retrieve count of Kubernetes clusters that match a query in Falcon Query Language "
|
|
95
95
|
"(FQL). Supported filters: access,agent_status,cid,cloud_account_id,cloud_name,cloud_region,cluster_id,cluster"
|
|
96
|
-
"_name,cluster_status,container_count,kubernetes_version,last_seen, management_status, node_count,
|
|
97
|
-
"tags",
|
|
96
|
+
"_name,cluster_status,container_count,iar_coverage,kubernetes_version,last_seen, management_status, node_count,"
|
|
97
|
+
"pod_count, tags",
|
|
98
98
|
"name": "filter",
|
|
99
99
|
"in": "query"
|
|
100
100
|
}
|
|
@@ -670,7 +670,8 @@ _kubernetes_protection_endpoints = [
|
|
|
670
670
|
"type": "string",
|
|
671
671
|
"description": "Search Kubernetes clusters using a query in Falcon Query Language (FQL). Supported "
|
|
672
672
|
"filters: access,agent_status,cid,cloud_account_id,cloud_name,cloud_region,cluster_id,cluster_name,cluster_sta"
|
|
673
|
-
"tus,container_count,kubernetes_version,last_seen, management_status, node_count, pod_count,
|
|
673
|
+
"tus,container_count,iar_coverage,kubernetes_version,last_seen, management_status, node_count, pod_count, "
|
|
674
|
+
"tags",
|
|
674
675
|
"name": "filter",
|
|
675
676
|
"in": "query"
|
|
676
677
|
},
|
|
@@ -196,8 +196,8 @@ _message_center_endpoints = [
|
|
|
196
196
|
},
|
|
197
197
|
{
|
|
198
198
|
"enum": [
|
|
199
|
-
"activity.
|
|
200
|
-
"activity.
|
|
199
|
+
"activity.created_time.asc",
|
|
200
|
+
"activity.created_time.desc"
|
|
201
201
|
],
|
|
202
202
|
"type": "string",
|
|
203
203
|
"description": "The property to sort on, followed by a dot (.), followed by the sort direction, either "
|
|
@@ -118,6 +118,10 @@ def filevantage_rule_payload(passed_keywords: dict) -> dict:
|
|
|
118
118
|
"include": "string",
|
|
119
119
|
"include_processes": "string",
|
|
120
120
|
"include_users": "string",
|
|
121
|
+
"content_files": "string",
|
|
122
|
+
"content_registry_values": "string",
|
|
123
|
+
"enable_content_capture": boolean,
|
|
124
|
+
"enable_hash_capture": boolean,
|
|
121
125
|
"modified_timestamp": "string",
|
|
122
126
|
"path": "string",
|
|
123
127
|
"precedence": integer,
|
|
@@ -146,6 +150,7 @@ def filevantage_rule_payload(passed_keywords: dict) -> dict:
|
|
|
146
150
|
keys = ["created_timestamp", "depth", "description", "exclude", "exclude_processes",
|
|
147
151
|
"exclude_users", "id", "include", "include_processes", "include_users",
|
|
148
152
|
"modified_timestamp", "path", "rule_group_id", "severity", "type",
|
|
153
|
+
"content_files", "content_registry_values"
|
|
149
154
|
]
|
|
150
155
|
bool_int_keys = ["watch_attributes_directory_changes", "watch_attributes_file_changes",
|
|
151
156
|
"watch_create_directory_changes", "watch_create_file_changes",
|
|
@@ -154,7 +159,8 @@ def filevantage_rule_payload(passed_keywords: dict) -> dict:
|
|
|
154
159
|
"watch_delete_value_changes", "watch_permissions_directory_changes",
|
|
155
160
|
"watch_permissions_file_changes", "watch_rename_directory_changes",
|
|
156
161
|
"watch_rename_file_changes", "watch_rename_key_changes",
|
|
157
|
-
"watch_set_value_changes", "watch_write_file_changes", "precedence"
|
|
162
|
+
"watch_set_value_changes", "watch_write_file_changes", "precedence",
|
|
163
|
+
"enable_content_capture", "enable_hash_capture"
|
|
158
164
|
]
|
|
159
165
|
for key in keys:
|
|
160
166
|
if passed_keywords.get(key, None):
|
|
@@ -73,7 +73,7 @@ class ServiceClass(BaseServiceClass):
|
|
|
73
73
|
# provide a solution for maintaining instantiated class specific properties.
|
|
74
74
|
#
|
|
75
75
|
def __init__(self: "ServiceClass",
|
|
76
|
-
auth_object: Optional[FalconInterface
|
|
76
|
+
auth_object: Optional[Union[FalconInterface, OAuth2]] = None,
|
|
77
77
|
default_auth_object_class: Optional[Type[FalconInterface]] = OAuth2,
|
|
78
78
|
**kwargs
|
|
79
79
|
):
|
|
@@ -175,6 +175,11 @@ class ServiceClass(BaseServiceClass):
|
|
|
175
175
|
if not self.token_status:
|
|
176
176
|
self.login()
|
|
177
177
|
|
|
178
|
+
# Detect if object authentication is being used to instantiate this class.
|
|
179
|
+
self._override_auth_style: str = None
|
|
180
|
+
if isinstance(auth_object, FalconInterface):
|
|
181
|
+
self.auth_style = "OBJECT"
|
|
182
|
+
|
|
178
183
|
# Log the creation of this Service Class if debugging is enabled.
|
|
179
184
|
if self.log:
|
|
180
185
|
log_class_startup(self, self.log)
|
|
@@ -321,6 +326,21 @@ class ServiceClass(BaseServiceClass):
|
|
|
321
326
|
"""Allow the user_agent to be changed for this instance of the class."""
|
|
322
327
|
self._override_user_agent = value
|
|
323
328
|
|
|
329
|
+
@property
|
|
330
|
+
def auth_style(self) -> str:
|
|
331
|
+
"""Return the authentication mechanism used for instantiating this class."""
|
|
332
|
+
if self._override_auth_style:
|
|
333
|
+
returned = self._override_auth_style
|
|
334
|
+
else:
|
|
335
|
+
returned = self.auth_object.auth_style
|
|
336
|
+
|
|
337
|
+
return returned
|
|
338
|
+
|
|
339
|
+
@auth_style.setter
|
|
340
|
+
def auth_style(self, value: str):
|
|
341
|
+
"""Allow the authentication mechanism to be specified per instance of the class."""
|
|
342
|
+
self._override_auth_style = value
|
|
343
|
+
|
|
324
344
|
# Override the headers read only property to inject our ext_headers.
|
|
325
345
|
# The Uber Class accomplishes this functionality differently.
|
|
326
346
|
@property
|
{crowdstrike-falconpy-dev-1.4.2 → crowdstrike-falconpy-dev-1.4.3}/src/falconpydev/_util/__init__.py
RENAMED
|
@@ -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 ._auth import login_payloads, logout_payloads
|
|
38
|
+
from ._auth import login_payloads, logout_payloads, review_provided_credentials
|
|
39
39
|
from ._functions import (
|
|
40
40
|
validate_payload,
|
|
41
41
|
generate_b64cred,
|
|
@@ -77,5 +77,5 @@ __all__ = ["create_uber_header_payload", "handle_body_payload_ids", "scrub_targe
|
|
|
77
77
|
"confirm_base_region", "return_preferred_default", "base_url_regions",
|
|
78
78
|
"_ALLOWED_METHODS", "login_payloads", "logout_payloads", "sanitize_dictionary",
|
|
79
79
|
"calc_content_return", "log_class_startup", "service_override_payload",
|
|
80
|
-
"deprecated_operation", "deprecated_class"
|
|
80
|
+
"deprecated_operation", "deprecated_class", "review_provided_credentials"
|
|
81
81
|
]
|