zscaler-sdk-python 1.8.0__tar.gz → 1.8.1__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.8.0 → zscaler_sdk_python-1.8.1}/PKG-INFO +1 -1
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/pyproject.toml +1 -1
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_response.py +0 -3
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/utils.py +98 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/devices.py +99 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/intermediate_certificates.py +42 -5
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/application_segment.py +1 -1
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/common.py +52 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/policyset_controller_v1.py +10 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/policyset_controller_v2.py +10 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/LICENSE.md +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/README.md +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/api_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/config/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/config/config_setter.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/config/config_validator.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/constants.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/error_messages.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/errors/response_checker.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/helpers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_collection.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_http_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_oauth_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/oneapi_object.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/request_executor.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/admin_user.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/company.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/entitlements.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/fail_open_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/forwarding_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/admin_user.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/devices.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/failopenpolicy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/forwardingprofile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/getcompanyinfo.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/manage_pass.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/secrets_otp.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/secrets_passwords.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/trustednetworks.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/webappservice.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/webpolicy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/webprivacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/secrets.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/web_app_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/web_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/web_privacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/zcc_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/admin.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/administration.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/alerts.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/application_users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/applications.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/call_quality_metrics.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/common.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/devices.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/snapshot.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/software_inventory.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/models/users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/snapshot.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zdx/zdx_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/admin_roles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/admin_users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/atp_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_applications.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_firewall.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_firewall_dns.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_firewall_ips.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloud_to_cloud_ir.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/dns_gatways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/end_user_notification.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/file_type_control_rule.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/gre_tunnel.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/iot_report.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/malware_protection_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/activation.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/advanced_threat_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/apptotal.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_app_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloud_to_cloud_ir.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/common.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/device_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/devices.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/dns_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/endusernotification.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/filetyperules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/forwarding_control_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/gre_recommended_list.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/gre_tunnel_info.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/gre_tunnels.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/gre_vips.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/iotreport.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/location_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/location_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/malware_protection_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/nss_servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/organization_information.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/pac_files.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/proxies.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/proxy_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/remoteassistance.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/rule_labels.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/sandboxrules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/subclouds.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/system_audit.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/time_intervals.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/url_filtering_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/urlcategory.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/user_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/vzen_nodes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/workload_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/models/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/nss_servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/organization_information.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/pac_files.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/policy_export.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/proxies.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/remote_assistance.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/rule_labels.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/sandbox_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/sub_clouds.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/system_audit.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/time_intervals.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/user_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/vzen_nodes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/zia_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/api_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/api_client.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/common.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/resource_servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/user_entitlement.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/models/users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/resource_servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/user_entitlement.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zidentity/zidentity_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/admin_sso_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/api_keys.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_connector_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_connectors.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_protection.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_segment_by_type.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_segments_ba.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_segments_ba_v2.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/application_segment.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/c2c_ip_ranges.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cbi_region.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/client_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/config_override_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/customer_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/customer_domain.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/microtenants.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/app_connector_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/app_connectors.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/app_protection_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/application_segment_lb.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/application_servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/c2c_ip_ranges.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cbi_region.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/certificates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/client_settings.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/config_override_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/customer_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/customer_domain.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/emergency_access.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/idp.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/lss.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/machine_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/microtenants.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/npn_client_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/pra_approval.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/pra_console.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/pra_credential.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/pra_portal.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/private_cloud_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/private_cloud_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/provisioning_keys.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/role_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/scim_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/segment_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/server_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/service_edge_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/service_edges.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/trusted_network.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/user_portal_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/user_portal_link.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/npn_client_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/policies.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/pra_approval.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/pra_console.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/pra_credential.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/pra_credential_pool.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/pra_portal.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/private_cloud_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/private_cloud_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/role_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/service_edge_group.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/service_edges.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/user_portal_controller.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/user_portal_link.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/zpa_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/account_details.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/activation.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/admin_roles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/admin_users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/api_keys.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/ec_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/ip_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/location_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/location_template.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/activation.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/common.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/ec_group_vm.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/ecgroup.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/ip_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/location_management.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/location_templates.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/nw_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/models/zpa_resources.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/nw_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/ztw/ztw_service.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/__init__.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/audit_logs.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/dlp_incidents.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/legacy.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/audit_logs.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/change_history.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/common.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/generated_tickets.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/incident_details.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/incident_evidence.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/incident_group_search.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/incident_search.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/models/incident_trigger.py +0 -0
- {zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zwa/zwa_service.py +0 -0
|
@@ -66,9 +66,6 @@ class ZscalerAPIResponse:
|
|
|
66
66
|
if end_time:
|
|
67
67
|
self._params["endTime"] = end_time
|
|
68
68
|
|
|
69
|
-
# If service is ZPA and user did not specify a pagesize, set it to max=500 by default
|
|
70
|
-
if self._service_type.upper() == "ZPA" and "pagesize" not in self._params:
|
|
71
|
-
self._params["pagesize"] = self.SERVICE_PAGE_LIMITS["ZPA"]["max"]
|
|
72
69
|
|
|
73
70
|
# If service is ZIA, ensure the pagination parameter is "pageSize" in camelCase
|
|
74
71
|
if self._service_type == "zia":
|
|
@@ -819,6 +819,60 @@ def format_url(base_string):
|
|
|
819
819
|
|
|
820
820
|
# return wrapper
|
|
821
821
|
|
|
822
|
+
def validate_and_format_date(date_str: str) -> str:
|
|
823
|
+
"""
|
|
824
|
+
Validates and formats date string for ZCC API.
|
|
825
|
+
Accepts various date formats and returns ZCC API format (YYYY-MM-DD HH:MM:SS GMT).
|
|
826
|
+
|
|
827
|
+
Args:
|
|
828
|
+
date_str (str): Date string in various formats
|
|
829
|
+
|
|
830
|
+
Returns:
|
|
831
|
+
str: Date in ZCC API format (YYYY-MM-DD HH:MM:SS GMT)
|
|
832
|
+
|
|
833
|
+
Raises:
|
|
834
|
+
ValueError: If date format is invalid
|
|
835
|
+
"""
|
|
836
|
+
if not date_str:
|
|
837
|
+
raise ValueError("Date string cannot be empty")
|
|
838
|
+
|
|
839
|
+
try:
|
|
840
|
+
# Try to parse the date string
|
|
841
|
+
parsed_date = parser.parse(date_str)
|
|
842
|
+
|
|
843
|
+
# If no timezone info, assume UTC
|
|
844
|
+
if parsed_date.tzinfo is None:
|
|
845
|
+
parsed_date = pytz.UTC.localize(parsed_date)
|
|
846
|
+
|
|
847
|
+
# Convert to ZCC API format: YYYY-MM-DD HH:MM:SS GMT
|
|
848
|
+
return parsed_date.strftime("%Y-%m-%d %H:%M:%S GMT")
|
|
849
|
+
except (ValueError, TypeError) as e:
|
|
850
|
+
raise ValueError(f"Invalid date format: {date_str}. Expected formats: YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, YYYY-MM-DDTHH:MM:SS, etc. Error: {e}")
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
def validate_time_zone(time_zone_str: str) -> str:
|
|
854
|
+
"""
|
|
855
|
+
Validates time zone string against IANA Time Zone database.
|
|
856
|
+
|
|
857
|
+
Args:
|
|
858
|
+
time_zone_str (str): IANA time zone string
|
|
859
|
+
|
|
860
|
+
Returns:
|
|
861
|
+
str: Validated time zone string
|
|
862
|
+
|
|
863
|
+
Raises:
|
|
864
|
+
ValueError: If time zone is invalid
|
|
865
|
+
"""
|
|
866
|
+
if not time_zone_str:
|
|
867
|
+
raise ValueError("Time zone cannot be empty")
|
|
868
|
+
|
|
869
|
+
# Check if it's a valid IANA time zone
|
|
870
|
+
if time_zone_str not in pytz.all_timezones:
|
|
871
|
+
raise ValueError(f"Invalid time zone: {time_zone_str}. Please use a valid IANA time zone (e.g., 'America/New_York', 'UTC', 'Europe/London')")
|
|
872
|
+
|
|
873
|
+
return time_zone_str
|
|
874
|
+
|
|
875
|
+
|
|
822
876
|
def zcc_param_mapper(func):
|
|
823
877
|
@wraps(func)
|
|
824
878
|
def wrapper(self, *args, **kwargs):
|
|
@@ -873,10 +927,54 @@ def zcc_param_mapper(func):
|
|
|
873
927
|
else:
|
|
874
928
|
mapped_params["registrationTypes"] = ",".join(mapped)
|
|
875
929
|
|
|
930
|
+
# Handle date parameters
|
|
931
|
+
start_date = (
|
|
932
|
+
query_params.get("start_date") or
|
|
933
|
+
query_params.get("startDate") or
|
|
934
|
+
body.get("start_date") or
|
|
935
|
+
body.get("startDate")
|
|
936
|
+
)
|
|
937
|
+
|
|
938
|
+
if start_date:
|
|
939
|
+
try:
|
|
940
|
+
mapped_params["startDate"] = validate_and_format_date(start_date)
|
|
941
|
+
except ValueError as e:
|
|
942
|
+
raise ValueError(f"Invalid start_date: {e}")
|
|
943
|
+
|
|
944
|
+
end_date = (
|
|
945
|
+
query_params.get("end_date") or
|
|
946
|
+
query_params.get("endDate") or
|
|
947
|
+
body.get("end_date") or
|
|
948
|
+
body.get("endDate")
|
|
949
|
+
)
|
|
950
|
+
|
|
951
|
+
if end_date:
|
|
952
|
+
try:
|
|
953
|
+
mapped_params["endDate"] = validate_and_format_date(end_date)
|
|
954
|
+
except ValueError as e:
|
|
955
|
+
raise ValueError(f"Invalid end_date: {e}")
|
|
956
|
+
|
|
957
|
+
# Handle time zone parameter
|
|
958
|
+
time_zone = (
|
|
959
|
+
query_params.get("time_zone") or
|
|
960
|
+
query_params.get("Time-Zone") or
|
|
961
|
+
body.get("time_zone") or
|
|
962
|
+
body.get("Time-Zone")
|
|
963
|
+
)
|
|
964
|
+
|
|
965
|
+
if time_zone:
|
|
966
|
+
try:
|
|
967
|
+
mapped_params["Time-Zone"] = validate_time_zone(time_zone)
|
|
968
|
+
except ValueError as e:
|
|
969
|
+
raise ValueError(f"Invalid time_zone: {e}")
|
|
970
|
+
|
|
876
971
|
# Clean aliases
|
|
877
972
|
for key in [
|
|
878
973
|
"os_type", "os_types",
|
|
879
974
|
"registration_type", "registration_types",
|
|
975
|
+
"start_date", "startDate",
|
|
976
|
+
"end_date", "endDate",
|
|
977
|
+
"time_zone", "Time-Zone",
|
|
880
978
|
]:
|
|
881
979
|
query_params.pop(key, None)
|
|
882
980
|
kwargs.pop(key, None)
|
|
@@ -209,6 +209,104 @@ class DevicesAPI(APIClient):
|
|
|
209
209
|
|
|
210
210
|
return filename
|
|
211
211
|
|
|
212
|
+
@zcc_param_mapper
|
|
213
|
+
def download_disable_reasons(self, query_params=None, filename: str = None):
|
|
214
|
+
"""
|
|
215
|
+
Downloads or exports a report as a CSV file showing the disable reasons of devices.
|
|
216
|
+
|
|
217
|
+
Args:
|
|
218
|
+
query_params (dict, optional): A dictionary containing supported filters.
|
|
219
|
+
|
|
220
|
+
``[query_params.os_types]`` {list}: Filter by OS type. Valid values:
|
|
221
|
+
ios, android, windows, macos, linux.
|
|
222
|
+
|
|
223
|
+
``[query_params.start_date]`` {str}: Start date for the report. Accepts various formats:
|
|
224
|
+
YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, YYYY-MM-DDTHH:MM:SS, etc. Will be converted to ZCC API format.
|
|
225
|
+
|
|
226
|
+
``[query_params.end_date]`` {str}: End date for the report. Accepts various formats:
|
|
227
|
+
YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, YYYY-MM-DDTHH:MM:SS, etc. Will be converted to ZCC API format.
|
|
228
|
+
|
|
229
|
+
``[query_params.time_zone]`` {str}: IANA time zone for date interpretation.
|
|
230
|
+
Examples: 'America/New_York', 'UTC', 'Europe/London'.
|
|
231
|
+
|
|
232
|
+
filename (str, optional): Custom filename for the CSV file. Defaults to timestamped name.
|
|
233
|
+
|
|
234
|
+
Returns:
|
|
235
|
+
str: Path to the downloaded CSV file.
|
|
236
|
+
|
|
237
|
+
Examples:
|
|
238
|
+
Download disable reasons report for Windows devices:
|
|
239
|
+
|
|
240
|
+
>>> try:
|
|
241
|
+
... filename = client.zcc.devices.download_disable_reasons(
|
|
242
|
+
... query_params={
|
|
243
|
+
... "os_types": ["windows"],
|
|
244
|
+
... "start_date": "2024-01-01",
|
|
245
|
+
... "end_date": "2024-01-31",
|
|
246
|
+
... "time_zone": "America/New_York"
|
|
247
|
+
... },
|
|
248
|
+
... filename="disable_reasons_jan2024.csv"
|
|
249
|
+
... )
|
|
250
|
+
... print(f"Disable reasons report downloaded successfully: {filename}")
|
|
251
|
+
... except Exception as e:
|
|
252
|
+
... print(f"Error during download: {e}")
|
|
253
|
+
|
|
254
|
+
Download disable reasons for all devices with specific date range:
|
|
255
|
+
|
|
256
|
+
>>> try:
|
|
257
|
+
... filename = client.zcc.devices.download_disable_reasons(
|
|
258
|
+
... query_params={
|
|
259
|
+
... "start_date": "2024-01-01 00:00:00",
|
|
260
|
+
... "end_date": "2024-01-31 23:59:59",
|
|
261
|
+
... "time_zone": "UTC"
|
|
262
|
+
... }
|
|
263
|
+
... )
|
|
264
|
+
... print(f"Report downloaded: {filename}")
|
|
265
|
+
... except Exception as e:
|
|
266
|
+
... print(f"Error: {e}")
|
|
267
|
+
"""
|
|
268
|
+
query_params = query_params or {}
|
|
269
|
+
|
|
270
|
+
if not filename:
|
|
271
|
+
filename = f"zcc-disable-reasons-{datetime.now().strftime('%Y%m%d-%H_%M_%S')}.csv"
|
|
272
|
+
|
|
273
|
+
# The zcc_param_mapper decorator handles parameter mapping and validation
|
|
274
|
+
# We just need to pass the query_params through
|
|
275
|
+
params = query_params.copy()
|
|
276
|
+
|
|
277
|
+
http_method = "get".upper()
|
|
278
|
+
api_url = format_url(f"{self._zcc_base_endpoint}/downloadDisableReasons")
|
|
279
|
+
|
|
280
|
+
# Prepare headers - include Time-Zone if provided
|
|
281
|
+
headers = {"Accept": "*/*"}
|
|
282
|
+
if "Time-Zone" in params:
|
|
283
|
+
headers["Time-Zone"] = params.pop("Time-Zone")
|
|
284
|
+
|
|
285
|
+
request, error = self._request_executor.create_request(
|
|
286
|
+
http_method,
|
|
287
|
+
api_url,
|
|
288
|
+
params=params,
|
|
289
|
+
headers=headers
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
if error:
|
|
293
|
+
raise Exception("Error creating request for downloading disable reasons report.")
|
|
294
|
+
|
|
295
|
+
response, error = self._request_executor.execute(request, return_raw_response=True)
|
|
296
|
+
if error:
|
|
297
|
+
raise error
|
|
298
|
+
if response is None:
|
|
299
|
+
raise Exception("No response received when downloading disable reasons report.")
|
|
300
|
+
|
|
301
|
+
content_type = response.headers.get("Content-Type", "").lower()
|
|
302
|
+
if not content_type.startswith("application/octet-stream") and not response.text.startswith('"User","Device type"'):
|
|
303
|
+
raise Exception("Invalid response content type or unexpected response format.")
|
|
304
|
+
|
|
305
|
+
with open(filename, "wb") as f:
|
|
306
|
+
f.write(response.content)
|
|
307
|
+
|
|
308
|
+
return filename
|
|
309
|
+
|
|
212
310
|
@zcc_param_mapper
|
|
213
311
|
def list_devices(self, query_params=None) -> tuple:
|
|
214
312
|
"""
|
|
@@ -624,3 +722,4 @@ class DevicesAPI(APIClient):
|
|
|
624
722
|
return None, response, error
|
|
625
723
|
|
|
626
724
|
return result, response, None
|
|
725
|
+
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zia/intermediate_certificates.py
RENAMED
|
@@ -414,7 +414,7 @@ class IntermediateCertsAPI(APIClient):
|
|
|
414
414
|
api_url = format_url(
|
|
415
415
|
f"""
|
|
416
416
|
{self._zia_base_endpoint}
|
|
417
|
-
|
|
417
|
+
/intermediateCaCertificate/downloadCsr/{cert_id}
|
|
418
418
|
"""
|
|
419
419
|
)
|
|
420
420
|
|
|
@@ -575,12 +575,14 @@ class IntermediateCertsAPI(APIClient):
|
|
|
575
575
|
return (None, response, error)
|
|
576
576
|
return (result, response, None)
|
|
577
577
|
|
|
578
|
-
def upload_cert(self, cert_id: int) -> tuple:
|
|
578
|
+
def upload_cert(self, cert_id: int, file_input_stream: str = None, file_path: str = None) -> tuple:
|
|
579
579
|
"""
|
|
580
580
|
Uploads a custom intermediate CA certificate signed by your Certificate Authority (CA) for SSL inspection.
|
|
581
581
|
|
|
582
582
|
Args:
|
|
583
583
|
cert_id (int): The unique identifier for the intermediate CA certificate.
|
|
584
|
+
file_input_stream (str): The certificate content in PEM format (alternative to file_path).
|
|
585
|
+
file_path (str): Path to the certificate file (alternative to file_input_stream).
|
|
584
586
|
|
|
585
587
|
Returns:
|
|
586
588
|
tuple: A tuple containing (intermediate CA certificate instance, Response, error).
|
|
@@ -593,10 +595,45 @@ class IntermediateCertsAPI(APIClient):
|
|
|
593
595
|
"""
|
|
594
596
|
)
|
|
595
597
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
+
# Prepare file content
|
|
599
|
+
if file_path:
|
|
600
|
+
# Use file path for upload
|
|
601
|
+
with open(file_path, 'rb') as f:
|
|
602
|
+
file_content = f.read()
|
|
603
|
+
elif file_input_stream:
|
|
604
|
+
# Use string content for upload
|
|
605
|
+
file_content = file_input_stream.encode('utf-8')
|
|
606
|
+
else:
|
|
607
|
+
return (None, None, ValueError("Either file_path or file_input_stream must be provided"))
|
|
608
|
+
|
|
609
|
+
# Create multipart form data manually (like Postman does)
|
|
610
|
+
import io
|
|
611
|
+
import uuid
|
|
612
|
+
|
|
613
|
+
# Generate a random boundary (like Postman does)
|
|
614
|
+
boundary = f"----WebKitFormBoundary{str(uuid.uuid4()).replace('-', '')}"
|
|
615
|
+
|
|
616
|
+
# Build multipart form data
|
|
617
|
+
form_data = io.BytesIO()
|
|
618
|
+
|
|
619
|
+
# Add the file part
|
|
620
|
+
form_data.write(f'--{boundary}\r\n'.encode())
|
|
621
|
+
form_data.write(b'Content-Disposition: form-data; name="fileUpload"; filename="certificate.pem"\r\n')
|
|
622
|
+
form_data.write(b'Content-Type: application/octet-stream\r\n\r\n')
|
|
623
|
+
form_data.write(file_content)
|
|
624
|
+
form_data.write(f'\r\n--{boundary}--\r\n'.encode())
|
|
625
|
+
|
|
626
|
+
headers = {
|
|
627
|
+
'Content-Type': f'multipart/form-data; boundary={boundary}'
|
|
628
|
+
}
|
|
598
629
|
|
|
599
|
-
request, error = self._request_executor.create_request(
|
|
630
|
+
request, error = self._request_executor.create_request(
|
|
631
|
+
http_method,
|
|
632
|
+
api_url,
|
|
633
|
+
body=form_data.getvalue(),
|
|
634
|
+
headers=headers,
|
|
635
|
+
use_raw_data_for_body=True
|
|
636
|
+
)
|
|
600
637
|
if error:
|
|
601
638
|
return (None, None, error)
|
|
602
639
|
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/application_segment.py
RENAMED
|
@@ -1093,7 +1093,7 @@ class MultiMatchUnsupportedReferences(ZscalerObject):
|
|
|
1093
1093
|
self.unsupported_features = ZscalerCollection.form_list(
|
|
1094
1094
|
config["unsupportedFeatures"] if "unsupportedFeatures" in config else [], str
|
|
1095
1095
|
)
|
|
1096
|
-
|
|
1096
|
+
|
|
1097
1097
|
self.tcp_ports = ZscalerCollection.form_list(
|
|
1098
1098
|
config["tcpPorts"] if "tcpPorts" in config else [], str
|
|
1099
1099
|
)
|
|
@@ -16,6 +16,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
16
16
|
|
|
17
17
|
from zscaler.oneapi_object import ZscalerObject
|
|
18
18
|
from zscaler.oneapi_collection import ZscalerCollection
|
|
19
|
+
from zscaler.zpa.models import application_segment as application_segment
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class CommonIDName(ZscalerObject):
|
|
@@ -519,3 +520,54 @@ class SortBy(ZscalerObject):
|
|
|
519
520
|
}
|
|
520
521
|
parent_req_format.update(current_obj_format)
|
|
521
522
|
return parent_req_format
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
class DesktopPolicyMappingsDTO(ZscalerObject):
|
|
526
|
+
"""
|
|
527
|
+
A class for DesktopPolicyMappingsDTO objects.
|
|
528
|
+
Handles common block attributes shared across multiple resources
|
|
529
|
+
"""
|
|
530
|
+
|
|
531
|
+
def __init__(self, config=None):
|
|
532
|
+
"""
|
|
533
|
+
Initialize the DesktopPolicyMappingsDTO model based on API response.
|
|
534
|
+
|
|
535
|
+
Args:
|
|
536
|
+
config (dict): A dictionary representing the response.
|
|
537
|
+
"""
|
|
538
|
+
super().__init__(config)
|
|
539
|
+
if config:
|
|
540
|
+
self.id = config["id"] if "id" in config else None
|
|
541
|
+
self.modified_time = config["modifiedTime"] if "modifiedTime" in config else None
|
|
542
|
+
self.creation_time = config["creationTime"] if "creationTime" in config else None
|
|
543
|
+
self.modified_by = config["modifiedBy"] if "modifiedBy" in config else None
|
|
544
|
+
self.image_id = config["imageId"] if "imageId" in config else None
|
|
545
|
+
self.image_name = config["imageName"] if "imageName" in config else None
|
|
546
|
+
self.app_segments = ZscalerCollection.form_list(
|
|
547
|
+
config["appSegments"] if "appSegments" in config else [], application_segment.ApplicationSegments
|
|
548
|
+
)
|
|
549
|
+
else:
|
|
550
|
+
self.id = None
|
|
551
|
+
self.modified_time = None
|
|
552
|
+
self.creation_time = None
|
|
553
|
+
self.modified_by = None
|
|
554
|
+
self.image_id = None
|
|
555
|
+
self.image_name = None
|
|
556
|
+
self.app_segments = []
|
|
557
|
+
|
|
558
|
+
def request_format(self):
|
|
559
|
+
"""
|
|
560
|
+
Returns the object as a dictionary in the format expected for API requests.
|
|
561
|
+
"""
|
|
562
|
+
parent_req_format = super().request_format()
|
|
563
|
+
current_obj_format = {
|
|
564
|
+
"id": self.id,
|
|
565
|
+
"modifiedTime": self.modified_time,
|
|
566
|
+
"creationTime": self.creation_time,
|
|
567
|
+
"modifiedBy": self.modified_by,
|
|
568
|
+
"imageId": self.image_id,
|
|
569
|
+
"imageName": self.image_name,
|
|
570
|
+
"appSegments": [segment.as_dict() for segment in self.app_segments],
|
|
571
|
+
}
|
|
572
|
+
parent_req_format.update(current_obj_format)
|
|
573
|
+
return parent_req_format
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/policyset_controller_v1.py
RENAMED
|
@@ -49,6 +49,8 @@ class PolicySetControllerV1(ZscalerObject):
|
|
|
49
49
|
self.reauth_idle_timeout = config["reauthIdleTimeout"] if "reauthIdleTimeout" in config else None
|
|
50
50
|
self.reauth_timeout = config["reauthTimeout"] if "reauthTimeout" in config else None
|
|
51
51
|
self.custom_msg = config["customMsg"] if "customMsg" in config else None
|
|
52
|
+
self.device_posture_failure_notification_enabled = config["devicePostureFailureNotificationEnabled"] \
|
|
53
|
+
if "devicePostureFailureNotificationEnabled" in config else None
|
|
52
54
|
self.disabled = config["disabled"] if "disabled" in config else None
|
|
53
55
|
self.extranet_enabled = config["extranetEnabled"] if "extranetEnabled" in config else False
|
|
54
56
|
self.microtenant_id = config["microtenantId"] if "microtenantId" in config else None
|
|
@@ -78,6 +80,10 @@ class PolicySetControllerV1(ZscalerObject):
|
|
|
78
80
|
config["serviceEdgeGroups"] if "serviceEdgeGroups" in config else [], service_edge_groups.ServiceEdgeGroup
|
|
79
81
|
)
|
|
80
82
|
|
|
83
|
+
self.desktop_policy_mappings = ZscalerCollection.form_list(
|
|
84
|
+
config["desktopPolicyMappings"] if "desktopPolicyMappings" in config else [], common.DesktopPolicyMappingsDTO
|
|
85
|
+
)
|
|
86
|
+
|
|
81
87
|
if "privilegedCapabilities" in config:
|
|
82
88
|
if isinstance(config["privilegedCapabilities"], common.PrivilegedCapabilitiesResource):
|
|
83
89
|
self.privileged_capabilities = config["privilegedCapabilities"]
|
|
@@ -167,6 +173,8 @@ class PolicySetControllerV1(ZscalerObject):
|
|
|
167
173
|
self.reauth_timeout = None
|
|
168
174
|
self.read_only = None
|
|
169
175
|
self.zscaler_managed = None
|
|
176
|
+
self.device_posture_failure_notification_enabled = None
|
|
177
|
+
self.desktop_policy_mappings = []
|
|
170
178
|
|
|
171
179
|
def request_format(self):
|
|
172
180
|
parent_req_format = super().request_format()
|
|
@@ -208,6 +216,8 @@ class PolicySetControllerV1(ZscalerObject):
|
|
|
208
216
|
"appConnectorGroups": [group.request_format() for group in self.app_connector_groups],
|
|
209
217
|
"appServerGroups": [group.request_format() for group in self.app_server_groups],
|
|
210
218
|
"serviceEdgeGroups": [group.request_format() for group in self.service_edge_groups],
|
|
219
|
+
"devicePostureFailureNotificationEnabled": self.device_posture_failure_notification_enabled,
|
|
220
|
+
"desktopPolicyMappings": [mapping.request_format() for mapping in self.desktop_policy_mappings],
|
|
211
221
|
}
|
|
212
222
|
parent_req_format.update(current_obj_format)
|
|
213
223
|
return parent_req_format
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zpa/models/policyset_controller_v2.py
RENAMED
|
@@ -48,6 +48,8 @@ class PolicySetControllerV2(ZscalerObject):
|
|
|
48
48
|
self.reauth_idle_timeout = config["reauthIdleTimeout"] if "reauthIdleTimeout" in config else None
|
|
49
49
|
self.reauth_timeout = config["reauthTimeout"] if "reauthTimeout" in config else None
|
|
50
50
|
self.custom_msg = config["customMsg"] if "customMsg" in config else None
|
|
51
|
+
self.device_posture_failure_notification_enabled = config["devicePostureFailureNotificationEnabled"] \
|
|
52
|
+
if "devicePostureFailureNotificationEnabled" in config else None
|
|
51
53
|
self.disabled = config["disabled"] if "disabled" in config else None
|
|
52
54
|
self.extranet_enabled = config["extranetEnabled"] if "extranetEnabled" in config else False
|
|
53
55
|
self.microtenant_id = config["microtenantId"] if "microtenantId" in config else None
|
|
@@ -81,6 +83,10 @@ class PolicySetControllerV2(ZscalerObject):
|
|
|
81
83
|
config["serviceEdgeGroups"] if "serviceEdgeGroups" in config else [], service_edge_groups.ServiceEdgeGroup
|
|
82
84
|
)
|
|
83
85
|
|
|
86
|
+
self.desktop_policy_mappings = ZscalerCollection.form_list(
|
|
87
|
+
config["desktopPolicyMappings"] if "desktopPolicyMappings" in config else [], common.DesktopPolicyMappingsDTO
|
|
88
|
+
)
|
|
89
|
+
|
|
84
90
|
if "privilegedCapabilities" in config:
|
|
85
91
|
if isinstance(config["privilegedCapabilities"], common.PrivilegedCapabilitiesResource):
|
|
86
92
|
self.privileged_capabilities = config["privilegedCapabilities"]
|
|
@@ -172,6 +178,8 @@ class PolicySetControllerV2(ZscalerObject):
|
|
|
172
178
|
self.reauth_timeout = None
|
|
173
179
|
self.read_only = None
|
|
174
180
|
self.zscaler_managed = None
|
|
181
|
+
self.device_posture_failure_notification_enabled = None
|
|
182
|
+
self.desktop_policy_mappings = []
|
|
175
183
|
|
|
176
184
|
def request_format(self):
|
|
177
185
|
parent_req_format = super().request_format()
|
|
@@ -214,6 +222,8 @@ class PolicySetControllerV2(ZscalerObject):
|
|
|
214
222
|
"appConnectorGroups": [group.request_format() for group in self.app_connector_groups],
|
|
215
223
|
"appServerGroups": [group.request_format() for group in self.app_server_groups],
|
|
216
224
|
"serviceEdgeGroups": [group.request_format() for group in self.service_edge_groups],
|
|
225
|
+
"devicePostureFailureNotificationEnabled": self.device_posture_failure_notification_enabled,
|
|
226
|
+
"desktopPolicyMappings": [mapping.request_format() for mapping in self.desktop_policy_mappings],
|
|
217
227
|
}
|
|
218
228
|
parent_req_format.update(current_obj_format)
|
|
219
229
|
return parent_req_format
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/forwardingprofile.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/secrets_passwords.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/zdxgroupentitlements.py
RENAMED
|
File without changes
|
{zscaler_sdk_python-1.8.0 → zscaler_sdk_python-1.8.1}/zscaler/zcc/models/zpagroupentitlements.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|