zscaler-sdk-python 1.9.5__tar.gz → 1.9.6__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.
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/PKG-INFO +6 -4
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/README.md +5 -3
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/pyproject.toml +1 -1
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/helpers.py +32 -4
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_client.py +8 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_response.py +6 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/request_executor.py +6 -1
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/utils.py +19 -1
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/webpolicy.py +4 -2
- zscaler_sdk_python-1.9.6/zscaler/zeasm/findings.py +253 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/lookalike_domains.py +142 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/models/common.py +53 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/models/findings.py +196 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/models/lookalike_domains.py +141 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/models/organizations.py +65 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/organizations.py +95 -0
- zscaler_sdk_python-1.9.6/zscaler/zeasm/zeasm_service.py +51 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/advanced_settings.py +1 -1
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/application_segment.py +9 -0
- zscaler_sdk_python-1.9.6/zscaler/ztw/__init__.py +0 -0
- zscaler_sdk_python-1.9.6/zscaler/zwa/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/LICENSE.md +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/api_client.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/config/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/config/config_setter.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/config/config_validator.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/constants.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/error_messages.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/errors/response_checker.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_collection.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_http_client.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_oauth_client.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/oneapi_object.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/types.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/admin_user.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/company.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/devices.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/entitlements.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/fail_open_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/forwarding_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/admin_user.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/devices.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/failopenpolicy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/forwardingprofile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/getcompanyinfo.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/manage_pass.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/secrets_otp.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/secrets_passwords.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/trustednetworks.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/webappservice.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/webprivacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/secrets.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/web_app_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/web_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/web_privacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zcc/zcc_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/admin.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/administration.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/alerts.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/application_users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/applications.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/call_quality_metrics.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/devices.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/snapshot.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/software_inventory.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/models/users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/snapshot.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zdx/zdx_service.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/zia → zscaler_sdk_python-1.9.6/zscaler/zeasm}/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/zia → zscaler_sdk_python-1.9.6/zscaler/zeasm}/models/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/zidentity → zscaler_sdk_python-1.9.6/zscaler/zia}/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/admin_roles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/admin_users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/atp_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_applications.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_firewall.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_firewall_dns.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_firewall_ips.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloud_to_cloud_ir.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/dns_gatways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/end_user_notification.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/file_type_control_rule.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/gre_tunnel.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/iot_report.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/malware_protection_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/zpa → zscaler_sdk_python-1.9.6/zscaler/zia/models}/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/activation.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/advanced_threat_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/apptotal.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_app_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloud_to_cloud_ir.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/device_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/devices.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/dns_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/endusernotification.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/filetyperules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/forwarding_control_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/gre_recommended_list.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/gre_tunnel_info.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/gre_tunnels.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/gre_vips.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/iotreport.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/location_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/location_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/malware_protection_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/nss_servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/organization_information.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/pac_files.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/proxies.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/proxy_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/remoteassistance.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/rule_labels.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/sandboxrules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/subclouds.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/system_audit.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/time_intervals.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_capture.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/url_filtering_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/urlcategory.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/user_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/vzen_nodes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/workload_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/models/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/nss_servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/organization_information.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/pac_files.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/policy_export.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/proxies.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/remote_assistance.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/rule_labels.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/sandbox_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/sub_clouds.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/system_audit.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/time_intervals.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/traffic_capture.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/user_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/vzen_nodes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/zia_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/ztw → zscaler_sdk_python-1.9.6/zscaler/zidentity}/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/api_client.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/api_client.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/resource_servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/user_entitlement.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/models/users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/resource_servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/user_entitlement.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zidentity/zidentity_service.py +0 -0
- {zscaler_sdk_python-1.9.5/zscaler/zwa → zscaler_sdk_python-1.9.6/zscaler/zpa}/__init__.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/admin_sso_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/api_keys.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_connector_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_connectors.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_protection.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_segment_by_type.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_segments_ba.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_segments_ba_v2.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/application_segment.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/branch_connector_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/branch_connectors.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/browser_protection.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/c2c_ip_ranges.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cbi_region.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/client_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cloud_connector_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/config_override_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/customer_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/customer_domain.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/customer_dr_tool.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/extranet_resource.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/location_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/managed_browser_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/microtenants.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/app_connector_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/app_connectors.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/app_protection_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/application_segment_lb.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/application_servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/branch_connectors.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/browser_protection.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/c2c_ip_ranges.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cbi_region.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/client_settings.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cloud_connector_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/config_override_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/customer_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/customer_domain.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/customer_dr_tool.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/emergency_access.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/idp.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/lss.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/machine_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/managed_browser_profile.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/microtenants.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/npn_client_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/oauth2_user_code.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/pra_approval.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/pra_console.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/pra_credential.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/pra_portal.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/private_cloud_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/private_cloud_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/provisioning_keys.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/role_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/scim_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/segment_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/server_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/service_edge_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/service_edges.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/stepup_auth_level.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/trusted_network.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/user_portal_aup.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/user_portal_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/user_portal_link.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/models/zia_customer_config.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/npn_client_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/oauth2_user_code.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/policies.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/pra_approval.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/pra_console.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/pra_credential.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/pra_credential_pool.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/pra_portal.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/private_cloud_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/private_cloud_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/role_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/service_edge_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/service_edges.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/stepup_auth_level.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/user_portal_aup.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/user_portal_controller.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/user_portal_link.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/workload_tag_group.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/zia_customer_config.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zpa/zpa_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/account_details.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/account_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/activation.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/admin_roles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/admin_users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/api_keys.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/discovery_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/ec_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/ip_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/location_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/location_template.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/account_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/activation.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/discovery_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/ec_group_vm.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/ecgroup.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/ip_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/location_management.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/location_templates.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/nw_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/public_cloud_info.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/models/zpa_resources.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/nw_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/public_cloud_info.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/ztw/ztw_service.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/audit_logs.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/dlp_incidents.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/legacy.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/audit_logs.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/change_history.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/common.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/generated_tickets.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/incident_details.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/incident_evidence.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/incident_group_search.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/incident_search.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/models/incident_trigger.py +0 -0
- {zscaler_sdk_python-1.9.5 → zscaler_sdk_python-1.9.6}/zscaler/zwa/zwa_service.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zscaler-sdk-python
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.6
|
|
4
4
|
Summary: Official Python SDK for the Zscaler Products
|
|
5
5
|
Home-page: https://github.com/zscaler/zscaler-sdk-python
|
|
6
6
|
License: MIT
|
|
@@ -75,6 +75,7 @@ used in your server-side code to interact with the Zscaler API platform across m
|
|
|
75
75
|
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
76
76
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
77
77
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
78
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
78
79
|
|
|
79
80
|
This SDK is designed to support the new Zscaler API framework [OneAPI](https://help.zscaler.com/oneapi/understanding-oneapi)
|
|
80
81
|
via a single OAuth2 HTTP client. The SDK is also backwards compatible with the previous
|
|
@@ -93,7 +94,7 @@ This library uses semantic versioning and updates are posted in ([release notes]
|
|
|
93
94
|
The latest release can always be found on the ([releases page](github-releases))
|
|
94
95
|
|
|
95
96
|
> Requires Python version 3.8.0 or higher.
|
|
96
|
-
Zscaler SDK for Python is compatible with Python 3.8 _(until [June 2023](https://devguide.python.org/versions/))_, 3.
|
|
97
|
+
Zscaler SDK for Python is compatible with Python 3.8 _(until [June 2023](https://devguide.python.org/versions/))_, 3.9, 3.10, 3.11, and 3.12
|
|
97
98
|
|
|
98
99
|
## Need help?
|
|
99
100
|
|
|
@@ -218,6 +219,7 @@ In most cases, you won't need to build the SDK from source. If you want to build
|
|
|
218
219
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
219
220
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
220
221
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
222
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
221
223
|
|
|
222
224
|
## Usage guide
|
|
223
225
|
|
|
@@ -245,6 +247,7 @@ As of the publication of SDK version => 1.7.x, OneAPI is available for programma
|
|
|
245
247
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
246
248
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
247
249
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
250
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
248
251
|
|
|
249
252
|
**NOTE** All other products such as Zscaler Cloud Connector (ZTW) and Zscaler Digital Experience (ZDX) are supported only via the legacy authentication method described in this README.
|
|
250
253
|
|
|
@@ -1569,8 +1572,7 @@ Contributors
|
|
|
1569
1572
|
- Eddie Parra - [eparra](https://github.com/eparra)
|
|
1570
1573
|
- Paul Abbot - [abbottp](https://github.com/abbottp)
|
|
1571
1574
|
|
|
1572
|
-
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK,
|
|
1573
|
-
which this SDK was inspired on.
|
|
1575
|
+
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK, which this SDK was inspired on.
|
|
1574
1576
|
|
|
1575
1577
|
## MIT License
|
|
1576
1578
|
|
|
@@ -37,6 +37,7 @@ used in your server-side code to interact with the Zscaler API platform across m
|
|
|
37
37
|
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
38
38
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
39
39
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
40
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
40
41
|
|
|
41
42
|
This SDK is designed to support the new Zscaler API framework [OneAPI](https://help.zscaler.com/oneapi/understanding-oneapi)
|
|
42
43
|
via a single OAuth2 HTTP client. The SDK is also backwards compatible with the previous
|
|
@@ -55,7 +56,7 @@ This library uses semantic versioning and updates are posted in ([release notes]
|
|
|
55
56
|
The latest release can always be found on the ([releases page](github-releases))
|
|
56
57
|
|
|
57
58
|
> Requires Python version 3.8.0 or higher.
|
|
58
|
-
Zscaler SDK for Python is compatible with Python 3.8 _(until [June 2023](https://devguide.python.org/versions/))_, 3.
|
|
59
|
+
Zscaler SDK for Python is compatible with Python 3.8 _(until [June 2023](https://devguide.python.org/versions/))_, 3.9, 3.10, 3.11, and 3.12
|
|
59
60
|
|
|
60
61
|
## Need help?
|
|
61
62
|
|
|
@@ -180,6 +181,7 @@ In most cases, you won't need to build the SDK from source. If you want to build
|
|
|
180
181
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
181
182
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
182
183
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
184
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
183
185
|
|
|
184
186
|
## Usage guide
|
|
185
187
|
|
|
@@ -207,6 +209,7 @@ As of the publication of SDK version => 1.7.x, OneAPI is available for programma
|
|
|
207
209
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
208
210
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
209
211
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
212
|
+
* [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
|
|
210
213
|
|
|
211
214
|
**NOTE** All other products such as Zscaler Cloud Connector (ZTW) and Zscaler Digital Experience (ZDX) are supported only via the legacy authentication method described in this README.
|
|
212
215
|
|
|
@@ -1531,8 +1534,7 @@ Contributors
|
|
|
1531
1534
|
- Eddie Parra - [eparra](https://github.com/eparra)
|
|
1532
1535
|
- Paul Abbot - [abbottp](https://github.com/abbottp)
|
|
1533
1536
|
|
|
1534
|
-
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK,
|
|
1535
|
-
which this SDK was inspired on.
|
|
1537
|
+
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK, which this SDK was inspired on.
|
|
1536
1538
|
|
|
1537
1539
|
## MIT License
|
|
1538
1540
|
|
|
@@ -115,10 +115,24 @@ def to_snake_case(string):
|
|
|
115
115
|
"ziaRSAPubKey": "zia_rsa_pub_key",
|
|
116
116
|
"zpaRSAPubKeyName": "zpa_rsa_pub_key_name",
|
|
117
117
|
"zpaRSAPubKey": "zpa_rsa_pub_key",
|
|
118
|
-
"
|
|
118
|
+
"truncateLargeUDPDNSResponse": "truncate_large_udpdns_response",
|
|
119
119
|
"enableZCCRevert": "enable_zcc_revert",
|
|
120
120
|
"enableZiaDR": "enable_zia_dr",
|
|
121
121
|
"purgeKerberosPreferredDCCache": "purge_kerberos_preferred_dc_cache",
|
|
122
|
+
# Additional ZCC camelCase edge cases
|
|
123
|
+
"enforceSplitDNS": "enforce_split_dns",
|
|
124
|
+
"packetTunnelExcludeListForIPv6": "packet_tunnel_exclude_list_for_ipv6",
|
|
125
|
+
"packetTunnelIncludeListForIPv6": "packet_tunnel_include_list_for_ipv6",
|
|
126
|
+
"oneIdMTDeviceAuthEnabled": "one_id_mt_device_auth_enabled",
|
|
127
|
+
"enableAPCforCriticalSections": "enable_apc_for_critical_sections",
|
|
128
|
+
"enableAPCforOtherSections": "enable_apc_for_other_sections",
|
|
129
|
+
"enablePCAdditionalSpace": "enable_pc_additional_space",
|
|
130
|
+
"bypassDNSTrafficUsingUDPProxy": "bypass_dns_traffic_using_udp_proxy",
|
|
131
|
+
"useEndPointLocationForDCSelection": "use_end_point_location_for_dc_selection",
|
|
132
|
+
"overrideATCmdByPolicy": "override_at_cmd_by_policy",
|
|
133
|
+
"customDNS": "custom_dns",
|
|
134
|
+
"ziaDRMethod": "zia_dr_method",
|
|
135
|
+
"dropQuicTraffic": "drop_quic_traffic",
|
|
122
136
|
|
|
123
137
|
# ZPA Edge Cases
|
|
124
138
|
"serverGroupDTOs": "server_group_dtos",
|
|
@@ -254,11 +268,25 @@ def to_lower_camel_case(string):
|
|
|
254
268
|
"zia_rsa_pub_key": "ziaRSAPubKey",
|
|
255
269
|
"zpa_rsa_pub_key_name": "zpaRSAPubKeyName",
|
|
256
270
|
"zpa_rsa_pub_key": "zpaRSAPubKey",
|
|
257
|
-
"
|
|
271
|
+
"truncate_large_udpdns_response": "truncateLargeUDPDNSResponse",
|
|
258
272
|
"enable_zcc_revert": "enableZCCRevert",
|
|
259
273
|
"delete_dhcp_option121_routes": "deleteDHCPOption121Routes",
|
|
260
|
-
"
|
|
261
|
-
"
|
|
274
|
+
"enable_zia_dr": "enableZiaDR",
|
|
275
|
+
"purge_kerberos_preferred_dc_cache": "purgeKerberosPreferredDCCache",
|
|
276
|
+
# Additional ZCC snake_case edge cases
|
|
277
|
+
"enforce_split_dns": "enforceSplitDNS",
|
|
278
|
+
"packet_tunnel_exclude_list_for_ipv6": "packetTunnelExcludeListForIPv6",
|
|
279
|
+
"packet_tunnel_include_list_for_ipv6": "packetTunnelIncludeListForIPv6",
|
|
280
|
+
"one_id_mt_device_auth_enabled": "oneIdMTDeviceAuthEnabled",
|
|
281
|
+
"enable_apc_for_critical_sections": "enableAPCforCriticalSections",
|
|
282
|
+
"enable_apc_for_other_sections": "enableAPCforOtherSections",
|
|
283
|
+
"enable_pc_additional_space": "enablePCAdditionalSpace",
|
|
284
|
+
"bypass_dns_traffic_using_udp_proxy": "bypassDNSTrafficUsingUDPProxy",
|
|
285
|
+
"use_end_point_location_for_dc_selection": "useEndPointLocationForDCSelection",
|
|
286
|
+
"override_at_cmd_by_policy": "overrideATCmdByPolicy",
|
|
287
|
+
"custom_dns": "customDNS",
|
|
288
|
+
"zia_dr_method": "ziaDRMethod",
|
|
289
|
+
"drop_quic_traffic": "dropQuicTraffic",
|
|
262
290
|
|
|
263
291
|
# ZPA Edge Cases
|
|
264
292
|
"server_group_dtos": "serverGroupDTOs",
|
|
@@ -17,6 +17,7 @@ from zscaler.zia.zia_service import ZIAService
|
|
|
17
17
|
from zscaler.zpa.zpa_service import ZPAService
|
|
18
18
|
from zscaler.zwa.zwa_service import ZWAService
|
|
19
19
|
from zscaler.zidentity.zidentity_service import ZIdentityService
|
|
20
|
+
from zscaler.zeasm.zeasm_service import ZEASMService
|
|
20
21
|
from zscaler.zcc.legacy import LegacyZCCClientHelper
|
|
21
22
|
from zscaler.ztw.legacy import LegacyZTWClientHelper
|
|
22
23
|
from zscaler.zdx.legacy import LegacyZDXClientHelper
|
|
@@ -192,6 +193,7 @@ class Client:
|
|
|
192
193
|
self._zpa = None
|
|
193
194
|
self._zdx = None
|
|
194
195
|
self._zidentity = None
|
|
196
|
+
self._zeasm= None
|
|
195
197
|
# self.logger.debug("Client initialized successfully.")
|
|
196
198
|
|
|
197
199
|
def authenticate(self):
|
|
@@ -262,6 +264,12 @@ class Client:
|
|
|
262
264
|
if self._zidentity is None:
|
|
263
265
|
self._zidentity = ZIdentityService(self._request_executor)
|
|
264
266
|
return self._zidentity
|
|
267
|
+
|
|
268
|
+
@property
|
|
269
|
+
def zeasm(self):
|
|
270
|
+
if self._zeasm is None:
|
|
271
|
+
self._zeasm = ZEASMService(self._request_executor)
|
|
272
|
+
return self._zeasm
|
|
265
273
|
|
|
266
274
|
def __enter__(self):
|
|
267
275
|
"""
|
|
@@ -193,6 +193,12 @@ class ZscalerAPIResponse:
|
|
|
193
193
|
self._results_total = self._body.get("results_total")
|
|
194
194
|
self._page_offset = self._body.get("pageOffset")
|
|
195
195
|
self._page_size = self._body.get("pageSize")
|
|
196
|
+
elif self._service_type == "zeasm":
|
|
197
|
+
# ZEASM uses "results" field for paginated responses
|
|
198
|
+
self._list = self._body.get("results", [])
|
|
199
|
+
self._total_results = self._body.get("total_results", 0)
|
|
200
|
+
self._next_page = self._body.get("next_page")
|
|
201
|
+
self._prev_page = self._body.get("prev_page")
|
|
196
202
|
elif self._service_type == "ZCC":
|
|
197
203
|
# ZCC can return either a single object or a list of objects
|
|
198
204
|
if isinstance(self._body, dict):
|
|
@@ -180,6 +180,8 @@ class RequestExecutor:
|
|
|
180
180
|
return "zidentity"
|
|
181
181
|
elif "/admin" in url:
|
|
182
182
|
return "admin"
|
|
183
|
+
elif "/easm/easm-ui/v1" in url:
|
|
184
|
+
return "zeasm"
|
|
183
185
|
if self.use_legacy_client:
|
|
184
186
|
url = self.remove_oneapi_endpoint_prefix(url)
|
|
185
187
|
# Recheck for service type after removing the prefix
|
|
@@ -197,7 +199,6 @@ class RequestExecutor:
|
|
|
197
199
|
return "zpa"
|
|
198
200
|
elif "/admin/api/v1" in url:
|
|
199
201
|
return "zidentity"
|
|
200
|
-
|
|
201
202
|
raise ValueError(f"Unsupported service: {url}")
|
|
202
203
|
|
|
203
204
|
def remove_oneapi_endpoint_prefix(self, endpoint: str) -> str:
|
|
@@ -314,6 +315,10 @@ class RequestExecutor:
|
|
|
314
315
|
if "/zdx/" in endpoint:
|
|
315
316
|
return body # Do not convert ZDX requests to camelCase
|
|
316
317
|
|
|
318
|
+
# Special handling for ZEASM endpoints - keep snake_case format
|
|
319
|
+
if "/easm/" in endpoint:
|
|
320
|
+
return body # Do not convert ZEASM requests to camelCase
|
|
321
|
+
|
|
317
322
|
# Special handling for ZCC service - use selective conversion
|
|
318
323
|
if "/zcc/" in endpoint and body:
|
|
319
324
|
from zscaler.helpers import convert_keys_to_camel_case_selective
|
|
@@ -841,6 +841,23 @@ def zcc_param_mapper(func):
|
|
|
841
841
|
else:
|
|
842
842
|
mapped_params["osTypes"] = ",".join(mapped)
|
|
843
843
|
|
|
844
|
+
# Handle device_type (uses same mapping as os_type)
|
|
845
|
+
raw_device_type = (
|
|
846
|
+
query_params.get("device_type") or
|
|
847
|
+
body.get("device_type")
|
|
848
|
+
)
|
|
849
|
+
|
|
850
|
+
if raw_device_type:
|
|
851
|
+
raw_device_type = [raw_device_type] if isinstance(raw_device_type, str) else raw_device_type
|
|
852
|
+
mapped = [
|
|
853
|
+
str(zcc_param_map["os"].get(dt.lower()) if isinstance(dt, str) else dt)
|
|
854
|
+
for dt in raw_device_type
|
|
855
|
+
if (isinstance(dt, str) and zcc_param_map["os"].get(dt.lower())) or isinstance(dt, int)
|
|
856
|
+
]
|
|
857
|
+
if not mapped:
|
|
858
|
+
raise ValueError("Invalid `device_type` provided. Valid options: ios, android, windows, macos, linux.")
|
|
859
|
+
mapped_params["deviceType"] = ",".join(mapped)
|
|
860
|
+
|
|
844
861
|
raw_reg = (
|
|
845
862
|
query_params.get("registration_type") or
|
|
846
863
|
query_params.get("registration_types") or
|
|
@@ -907,9 +924,10 @@ def zcc_param_mapper(func):
|
|
|
907
924
|
# Clean aliases
|
|
908
925
|
for key in [
|
|
909
926
|
"os_type", "os_types",
|
|
927
|
+
"device_type",
|
|
910
928
|
"registration_type", "registration_types",
|
|
911
929
|
"start_date", "startDate",
|
|
912
|
-
"end_date", "endDate",
|
|
930
|
+
"end_date", "endDate",
|
|
913
931
|
"time_zone", "Time-Zone",
|
|
914
932
|
]:
|
|
915
933
|
query_params.pop(key, None)
|
|
@@ -309,6 +309,7 @@ class PolicyExtension(ZscalerObject):
|
|
|
309
309
|
super().__init__(config)
|
|
310
310
|
|
|
311
311
|
if config:
|
|
312
|
+
self.id = config["id"] if "id" in config else None
|
|
312
313
|
self.source_port_based_bypasses = config["sourcePortBasedBypasses"] \
|
|
313
314
|
if "sourcePortBasedBypasses" in config else None
|
|
314
315
|
self.vpn_gateways = config["vpnGateways"] \
|
|
@@ -439,6 +440,7 @@ class PolicyExtension(ZscalerObject):
|
|
|
439
440
|
if "enableFlowBasedTunnel" in config else None
|
|
440
441
|
|
|
441
442
|
else:
|
|
443
|
+
self.id = None
|
|
442
444
|
self.source_port_based_bypasses = None
|
|
443
445
|
self.vpn_gateways = None
|
|
444
446
|
self.packet_tunnel_exclude_list = None
|
|
@@ -484,7 +486,7 @@ class PolicyExtension(ZscalerObject):
|
|
|
484
486
|
self.update_dns_search_order = None
|
|
485
487
|
self.truncate_large_udpdns_response = None
|
|
486
488
|
self.prioritize_dns_exclusions = None
|
|
487
|
-
self.
|
|
489
|
+
self.purge_kerberos_preferred_dc_cache = None
|
|
488
490
|
self.delete_dhcp_option121_routes = None
|
|
489
491
|
self.generate_cli_password_contract = None
|
|
490
492
|
self.zdx_lite_config_obj = None
|
|
@@ -554,7 +556,7 @@ class PolicyExtension(ZscalerObject):
|
|
|
554
556
|
"updateDnsSearchOrder": self.update_dns_search_order,
|
|
555
557
|
"truncateLargeUDPDNSResponse": self.truncate_large_udpdns_response,
|
|
556
558
|
"prioritizeDnsExclusions": self.prioritize_dns_exclusions,
|
|
557
|
-
"purgeKerberosPreferredDCCache": self.
|
|
559
|
+
"purgeKerberosPreferredDCCache": self.purge_kerberos_preferred_dc_cache,
|
|
558
560
|
"deleteDHCPOption121Routes": self.delete_dhcp_option121_routes,
|
|
559
561
|
"generateCliPasswordContract": self.generate_cli_password_contract,
|
|
560
562
|
"zdxLiteConfigObj": self.zdx_lite_config_obj,
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright (c) 2023, Zscaler Inc.
|
|
3
|
+
|
|
4
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
5
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
6
|
+
copyright notice and this permission notice appear in all copies.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
9
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
10
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
11
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
12
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
13
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
14
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from typing import Dict, List, Optional, Any, Union
|
|
18
|
+
from zscaler.api_client import APIClient
|
|
19
|
+
from zscaler.request_executor import RequestExecutor
|
|
20
|
+
from zscaler.zeasm.models.findings import CommonFindings, Findings, FindingDetails
|
|
21
|
+
from zscaler.utils import format_url
|
|
22
|
+
from zscaler.types import APIResult
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class FindingsAPI(APIClient):
|
|
26
|
+
"""
|
|
27
|
+
A Client object for the ZEASM Findings resource.
|
|
28
|
+
|
|
29
|
+
This class provides methods to interact with ZEASM findings,
|
|
30
|
+
allowing you to retrieve findings identified and tracked for an
|
|
31
|
+
organization's internet-facing assets scanned by EASM.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
_zeasm_base_endpoint = "/easm/easm-ui/v1"
|
|
35
|
+
|
|
36
|
+
def __init__(self, request_executor: "RequestExecutor") -> None:
|
|
37
|
+
super().__init__()
|
|
38
|
+
self._request_executor: RequestExecutor = request_executor
|
|
39
|
+
|
|
40
|
+
def list_findings(self, org_id: str) -> APIResult[Findings]:
|
|
41
|
+
"""
|
|
42
|
+
Retrieves the list of findings identified and tracked for an organization's
|
|
43
|
+
internet-facing assets scanned by EASM.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
org_id (str): The unique identifier for the organization.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
tuple: A tuple containing:
|
|
50
|
+
- Findings: Object containing results list and total_results count
|
|
51
|
+
- Response: The raw API response object
|
|
52
|
+
- error: Any error that occurred, or None if successful
|
|
53
|
+
|
|
54
|
+
Examples:
|
|
55
|
+
List all findings for an organization::
|
|
56
|
+
|
|
57
|
+
>>> findings, _, err = client.zeasm.findings.list_findings(
|
|
58
|
+
... org_id="3f61a446-1a0d-11f0-94e8-8a5f4d45e80c"
|
|
59
|
+
... )
|
|
60
|
+
>>> if err:
|
|
61
|
+
... print(f"Error: {err}")
|
|
62
|
+
... return
|
|
63
|
+
>>> print(f"Total findings: {findings.total_results}")
|
|
64
|
+
>>> for finding in findings.results:
|
|
65
|
+
... print(f" ID: {finding.id}, Category: {finding.category}")
|
|
66
|
+
"""
|
|
67
|
+
http_method = "get".upper()
|
|
68
|
+
api_url = format_url(
|
|
69
|
+
f"""
|
|
70
|
+
{self._zeasm_base_endpoint}
|
|
71
|
+
/organizations/{org_id}/findings
|
|
72
|
+
"""
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
body = {}
|
|
76
|
+
headers = {}
|
|
77
|
+
|
|
78
|
+
request, error = self._request_executor.create_request(http_method, api_url, body, headers)
|
|
79
|
+
|
|
80
|
+
if error:
|
|
81
|
+
return (None, None, error)
|
|
82
|
+
|
|
83
|
+
response, error = self._request_executor.execute(request)
|
|
84
|
+
|
|
85
|
+
if error:
|
|
86
|
+
return (None, response, error)
|
|
87
|
+
|
|
88
|
+
try:
|
|
89
|
+
result = Findings(response.get_body())
|
|
90
|
+
except Exception as error:
|
|
91
|
+
return (None, response, error)
|
|
92
|
+
return (result, response, None)
|
|
93
|
+
|
|
94
|
+
def get_finding_details(self, org_id: str, finding_id: str) -> APIResult[FindingDetails]:
|
|
95
|
+
"""
|
|
96
|
+
Retrieves details for a finding based on the specified ID.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
org_id (str): The unique identifier for the organization.
|
|
100
|
+
finding_id (str): The unique identifier for the finding.
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
tuple: A tuple containing:
|
|
104
|
+
- FindingDetails: Object containing the finding details
|
|
105
|
+
- Response: The raw API response object
|
|
106
|
+
- error: Any error that occurred, or None if successful
|
|
107
|
+
|
|
108
|
+
Examples:
|
|
109
|
+
Get details for a specific finding::
|
|
110
|
+
|
|
111
|
+
>>> finding, _, err = client.zeasm.findings.get_finding_details(
|
|
112
|
+
... org_id="3f61a446-1a0d-11f0-94e8-8a5f4d45e80c",
|
|
113
|
+
... finding_id="8abfc6a2b3058cb75de44c4c65ca4641"
|
|
114
|
+
... )
|
|
115
|
+
>>> if err:
|
|
116
|
+
... print(f"Error: {err}")
|
|
117
|
+
... return
|
|
118
|
+
>>> print(finding.as_dict())
|
|
119
|
+
"""
|
|
120
|
+
http_method = "get".upper()
|
|
121
|
+
api_url = format_url(
|
|
122
|
+
f"""
|
|
123
|
+
{self._zeasm_base_endpoint}
|
|
124
|
+
/organizations/{org_id}/findings/{finding_id}/details
|
|
125
|
+
"""
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
body = {}
|
|
129
|
+
headers = {}
|
|
130
|
+
|
|
131
|
+
request, error = self._request_executor.create_request(http_method, api_url, body, headers)
|
|
132
|
+
|
|
133
|
+
if error:
|
|
134
|
+
return (None, None, error)
|
|
135
|
+
|
|
136
|
+
response, error = self._request_executor.execute(request, FindingDetails)
|
|
137
|
+
if error:
|
|
138
|
+
return (None, response, error)
|
|
139
|
+
|
|
140
|
+
try:
|
|
141
|
+
result = FindingDetails(response.get_body())
|
|
142
|
+
except Exception as error:
|
|
143
|
+
return (None, response, error)
|
|
144
|
+
return (result, response, None)
|
|
145
|
+
|
|
146
|
+
def get_finding_evidence(self, org_id: str, finding_id: str) -> APIResult[CommonFindings]:
|
|
147
|
+
"""
|
|
148
|
+
Retrieves scan evidence details for a finding based on the specified ID.
|
|
149
|
+
|
|
150
|
+
This is a subset of the scan output obtained for the associated asset
|
|
151
|
+
that can be attributed to the finding.
|
|
152
|
+
|
|
153
|
+
Args:
|
|
154
|
+
org_id (str): The unique identifier for the organization.
|
|
155
|
+
finding_id (str): The unique identifier for the finding.
|
|
156
|
+
|
|
157
|
+
Returns:
|
|
158
|
+
tuple: A tuple containing:
|
|
159
|
+
- CommonFindings: Object containing the evidence content and source_type
|
|
160
|
+
- Response: The raw API response object
|
|
161
|
+
- error: Any error that occurred, or None if successful
|
|
162
|
+
|
|
163
|
+
Examples:
|
|
164
|
+
Get evidence for a specific finding::
|
|
165
|
+
|
|
166
|
+
>>> evidence, _, err = client.zeasm.findings.get_finding_evidence(
|
|
167
|
+
... org_id="3f61a446-1a0d-11f0-94e8-8a5f4d45e80c",
|
|
168
|
+
... finding_id="8abfc6a2b3058cb75de44c4c65ca4641"
|
|
169
|
+
... )
|
|
170
|
+
>>> if err:
|
|
171
|
+
... print(f"Error: {err}")
|
|
172
|
+
... return
|
|
173
|
+
>>> if evidence:
|
|
174
|
+
>>> print(evidence.as_dict())
|
|
175
|
+
"""
|
|
176
|
+
http_method = "get".upper()
|
|
177
|
+
api_url = format_url(
|
|
178
|
+
f"""
|
|
179
|
+
{self._zeasm_base_endpoint}
|
|
180
|
+
/organizations/{org_id}/findings/{finding_id}/evidence
|
|
181
|
+
"""
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
body = {}
|
|
185
|
+
headers = {}
|
|
186
|
+
|
|
187
|
+
request, error = self._request_executor.create_request(http_method, api_url, body, headers)
|
|
188
|
+
|
|
189
|
+
if error:
|
|
190
|
+
return (None, None, error)
|
|
191
|
+
|
|
192
|
+
response, error = self._request_executor.execute(request, CommonFindings)
|
|
193
|
+
if error:
|
|
194
|
+
return (None, response, error)
|
|
195
|
+
|
|
196
|
+
try:
|
|
197
|
+
result = CommonFindings(response.get_body())
|
|
198
|
+
except Exception as error:
|
|
199
|
+
return (None, response, error)
|
|
200
|
+
return (result, response, None)
|
|
201
|
+
|
|
202
|
+
def get_finding_scan_output(self, org_id: str, finding_id: str) -> APIResult[CommonFindings]:
|
|
203
|
+
"""
|
|
204
|
+
Retrieves the complete scan output for a finding based on the specified ID.
|
|
205
|
+
|
|
206
|
+
Args:
|
|
207
|
+
org_id (str): The unique identifier for the organization.
|
|
208
|
+
finding_id (str): The unique identifier for the finding.
|
|
209
|
+
|
|
210
|
+
Returns:
|
|
211
|
+
tuple: A tuple containing:
|
|
212
|
+
- CommonFindings: Object containing the scan output content and source_type
|
|
213
|
+
- Response: The raw API response object
|
|
214
|
+
- error: Any error that occurred, or None if successful
|
|
215
|
+
|
|
216
|
+
Examples:
|
|
217
|
+
Get complete scan output for a specific finding::
|
|
218
|
+
|
|
219
|
+
>>> scan_output, _, err = client.zeasm.findings.get_finding_scan_output(
|
|
220
|
+
... org_id="3f61a446-1a0d-11f0-94e8-8a5f4d45e80c",
|
|
221
|
+
... finding_id="8abfc6a2b3058cb75de44c4c65ca4641"
|
|
222
|
+
... )
|
|
223
|
+
>>> if err:
|
|
224
|
+
... print(f"Error: {err}")
|
|
225
|
+
... return
|
|
226
|
+
>>> if finding:
|
|
227
|
+
>>> print(finding.as_dict())
|
|
228
|
+
"""
|
|
229
|
+
http_method = "get".upper()
|
|
230
|
+
api_url = format_url(
|
|
231
|
+
f"""
|
|
232
|
+
{self._zeasm_base_endpoint}
|
|
233
|
+
/organizations/{org_id}/findings/{finding_id}/scan-output
|
|
234
|
+
"""
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
body = {}
|
|
238
|
+
headers = {}
|
|
239
|
+
|
|
240
|
+
request, error = self._request_executor.create_request(http_method, api_url, body, headers)
|
|
241
|
+
|
|
242
|
+
if error:
|
|
243
|
+
return (None, None, error)
|
|
244
|
+
|
|
245
|
+
response, error = self._request_executor.execute(request, CommonFindings)
|
|
246
|
+
if error:
|
|
247
|
+
return (None, response, error)
|
|
248
|
+
|
|
249
|
+
try:
|
|
250
|
+
result = CommonFindings(response.get_body())
|
|
251
|
+
except Exception as error:
|
|
252
|
+
return (None, response, error)
|
|
253
|
+
return (result, response, None)
|