zscaler-sdk-python 1.5.9__tar.gz → 1.7.0__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.5.9 → zscaler_sdk_python-1.7.0}/PKG-INFO +168 -7
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/README.md +166 -5
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/pyproject.toml +2 -2
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/errors/response_checker.py +1 -1
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/helpers.py +7 -2
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_client.py +8 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_http_client.py +3 -3
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/request_executor.py +28 -3
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/utils.py +25 -3
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/devices.py +2 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/admin.py +1 -1
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/admin_roles.py +1 -1
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_nss.py +9 -5
- zscaler_sdk_python-1.7.0/zscaler/zia/cloud_to_cloud_ir.py +294 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dlp_dictionary.py +5 -2
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/legacy.py +11 -0
- zscaler_sdk_python-1.7.0/zscaler/zia/models/cloud_to_cloud_ir.py +488 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/rule_labels.py +1 -1
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/url_categories.py +5 -3
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/zia_service.py +10 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/api_client.py +539 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/groups.py +625 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/api_client.py +349 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/common.py +93 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/groups.py +191 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/resource_servers.py +219 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/user_entitlement.py +162 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/models/users.py +183 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/resource_servers.py +153 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/user_entitlement.py +125 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/users.py +398 -0
- zscaler_sdk_python-1.7.0/zscaler/zidentity/zidentity_service.py +70 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/admin_sso_controller.py +130 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/api_keys.py +307 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_connector_groups.py +0 -2
- zscaler_sdk_python-1.7.0/zscaler/zpa/c2c_ip_ranges.py +404 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/config_override_controller.py +215 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/customer_domain.py +164 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/legacy.py +104 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/microtenants.py +3 -3
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/api_keys.py +120 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/app_connector_groups.py +0 -1
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/c2c_ip_ranges.py +129 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/common.py +156 -1
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/config_override_controller.py +101 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/customer_domain.py +81 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/microtenants.py +82 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/npn_client_controller.py +87 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/private_cloud_controller.py +571 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/private_cloud_group.py +241 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/user_portal_controller.py +129 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/models/user_portal_link.py +151 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/npn_client_controller.py +88 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/pra_console.py +1 -1
- zscaler_sdk_python-1.7.0/zscaler/zpa/private_cloud_controller.py +283 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/private_cloud_group.py +429 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/user_portal_controller.py +309 -0
- zscaler_sdk_python-1.7.0/zscaler/zpa/user_portal_link.py +483 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/zpa_service.py +100 -0
- zscaler_sdk_python-1.7.0/zscaler/zwa/__init__.py +0 -0
- zscaler_sdk_python-1.5.9/zscaler/zpa/models/microtenants.py +0 -235
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/LICENSE.md +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/api_client.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/config/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/config/config_setter.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/config/config_validator.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/constants.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/error_messages.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_collection.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_oauth_client.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_object.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/oneapi_response.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/admin_user.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/company.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/entitlements.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/fail_open_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/forwarding_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/legacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/admin_user.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/devices.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/failopenpolicy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/forwardingprofile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/getcompanyinfo.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/manage_pass.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/secrets_otp.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/secrets_passwords.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/trustednetworks.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/webappservice.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/webpolicy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/webprivacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/secrets.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/web_app_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/web_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/web_privacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zcc/zcc_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/legacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/activeapplications.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/administration.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/alerts.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/application_users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/applications.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/call_quality_metrics.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/common.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/devices.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/software_inventory.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/models/users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zdx/zdx_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/admin_users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/atp_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_applications.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_firewall.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_firewall_dns.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_firewall_ips.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/dns_gatways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/end_user_notification.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/file_type_control_rule.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/gre_tunnel.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/iot_report.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/malware_protection_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/activation.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/advanced_threat_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/apptotal.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/browser_control_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/casb_dlp_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/casb_malware_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_app_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/common.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/device_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/devices.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/dns_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/endusernotification.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/filetyperules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/forwarding_control_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/gre_recommended_list.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/gre_tunnel_info.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/gre_tunnels.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/gre_vips.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/iotreport.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/location_group.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/location_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/malware_protection_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/nss_servers.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/organization_information.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/pac_files.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/proxies.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/proxy_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/remoteassistance.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/rule_labels.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/sandboxrules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/subclouds.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/system_audit.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/time_intervals.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/url_filtering_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/urlcategory.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/user_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/workload_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/models/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/nss_servers.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/organization_information.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/pac_files.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/policy_export.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/proxies.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/remote_assistance.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/saas_security_api.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/sandbox_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/sub_clouds.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/system_audit.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/time_intervals.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/user_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/vzen_clusters.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.5.9/zscaler/zpa → zscaler_sdk_python-1.7.0/zscaler/zidentity}/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9/zscaler/ztw → zscaler_sdk_python-1.7.0/zscaler/zpa}/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_connectors.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_protection.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_segment_by_type.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_segments_ba.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_segments_ba_v2.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/application_segment.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cbi_region.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/client_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/customer_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/app_connectors.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/app_protection_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/application_segment.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/application_segment_lb.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/application_servers.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cbi_region.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/client_settings.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/customer_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/emergency_access.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/idp.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/lss.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/machine_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/pra_approval.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/pra_console.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/pra_credential.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/pra_portal.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/provisioning_keys.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/role_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/scim_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/segment_group.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/server_group.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/service_edge_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/service_edges.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/models/trusted_network.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/policies.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/pra_approval.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/pra_credential.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/pra_credential_pool.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/pra_portal.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/role_controller.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/service_edge_group.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/service_edges.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zpa/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.5.9/zscaler/zwa → zscaler_sdk_python-1.7.0/zscaler/ztw}/__init__.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/account_details.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/activation.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/admin_roles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/admin_users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/api_keys.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/ec_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/ip_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/legacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/location_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/location_template.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/activation.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/common.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/ec_group_vm.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/ecgroup.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/ip_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/location_management.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/location_templates.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/nw_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/models/zpa_resources.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/nw_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/ztw/ztw_service.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/audit_logs.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/dlp_incidents.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/legacy.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/audit_logs.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/change_history.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/common.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/generated_tickets.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/incident_details.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/incident_evidence.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/incident_group_search.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/incident_search.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/models/incident_trigger.py +0 -0
- {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.7.0}/zscaler/zwa/zwa_service.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zscaler-sdk-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
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
|
|
7
|
-
Keywords: zscaler,sdk,zpa,zia,zdx,zcc,ztw,zwa
|
|
7
|
+
Keywords: zscaler,sdk,zpa,zia,zdx,zcc,ztw,zwa,zidentity
|
|
8
8
|
Author: Zscaler, Inc.
|
|
9
9
|
Author-email: devrel@zscaler.com
|
|
10
10
|
Requires-Python: >=3.9.2,<4.0
|
|
@@ -73,6 +73,7 @@ used in your server-side code to interact with the Zscaler API platform across m
|
|
|
73
73
|
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
74
74
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
75
75
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
76
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
76
77
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
77
78
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
78
79
|
|
|
@@ -213,6 +214,7 @@ In most cases, you won't need to build the SDK from source. If you want to build
|
|
|
213
214
|
* [OneAPI](https://help.zscaler.com/oneapi/understanding-oneapi)
|
|
214
215
|
* [ZPA API](https://help.zscaler.com/zpa/zpa-api/api-developer-reference-guide)
|
|
215
216
|
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
217
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
216
218
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
217
219
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
218
220
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
@@ -236,11 +238,14 @@ If your Zscaler tenant has not been migrated to the new Zscaler [Zidentity platf
|
|
|
236
238
|
|
|
237
239
|
## Zscaler OneAPI New Framework
|
|
238
240
|
|
|
239
|
-
As of the publication of SDK version =>
|
|
241
|
+
As of the publication of SDK version => 1.7.x, OneAPI is available for programmatic interaction with the following products:
|
|
240
242
|
|
|
241
|
-
* [
|
|
242
|
-
* [
|
|
243
|
-
* [
|
|
243
|
+
* [ZPA API](https://help.zscaler.com/zpa/zpa-api/api-developer-reference-guide)
|
|
244
|
+
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
245
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
246
|
+
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
247
|
+
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
248
|
+
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
244
249
|
|
|
245
250
|
**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.
|
|
246
251
|
|
|
@@ -803,6 +808,162 @@ Each one of the configuration values above can be turned into an environment var
|
|
|
803
808
|
| `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
|
|
804
809
|
| `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
|
|
805
810
|
|
|
811
|
+
### Zscaler ZIdentity API
|
|
812
|
+
|
|
813
|
+
This SDK supports programmatic integration with the Zscaler ZIdentity API service.
|
|
814
|
+
|
|
815
|
+
The authentication to Zscaler ZIdentity service via the OneAPI framework, requires uses the API client `ZscalerClient`
|
|
816
|
+
|
|
817
|
+
| Argument | Description | Environment variable |
|
|
818
|
+
|--------------|-------------|-------------------|
|
|
819
|
+
| `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
|
|
820
|
+
| `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
|
|
821
|
+
| `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
|
|
822
|
+
| `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
|
|
823
|
+
| `cloud`
|
|
824
|
+
|
|
825
|
+
### Initialize OneAPI OAuth 2.0 Client
|
|
826
|
+
|
|
827
|
+
#### Zidentity OneAPI Client ID and Client Secret Authentication
|
|
828
|
+
|
|
829
|
+
Construct a client instance by passing your Zidentity `clientId`, `clientSecret` and `vanityDomain`:
|
|
830
|
+
|
|
831
|
+
```py
|
|
832
|
+
from zscaler import ZscalerClient
|
|
833
|
+
|
|
834
|
+
config = {
|
|
835
|
+
"clientId": '{yourClientId}',
|
|
836
|
+
"clientSecret": '{yourClientSecret}',
|
|
837
|
+
"vanityDomain": '{yourvanityDomain}',
|
|
838
|
+
"cloud": "beta", # Optional when authenticating to an alternative cloud environment
|
|
839
|
+
"logging": {"enabled": False, "verbose": False},
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
def main():
|
|
843
|
+
with ZscalerClient(config) as client:
|
|
844
|
+
users, _, error = client.zidentity.groups.list_groups()
|
|
845
|
+
if error:
|
|
846
|
+
print(f"Error listing users: {error}")
|
|
847
|
+
return
|
|
848
|
+
|
|
849
|
+
print(f"Total users found: {len(users)}")
|
|
850
|
+
|
|
851
|
+
if __name__ == "__main__":
|
|
852
|
+
main()
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
#### Zidentity OneAPI Client ID and Private Key Authentication
|
|
856
|
+
|
|
857
|
+
```py
|
|
858
|
+
from zscaler import ZscalerClient
|
|
859
|
+
|
|
860
|
+
config = {
|
|
861
|
+
"clientId": '{yourClientId}',
|
|
862
|
+
"privateKey": '{yourPrivateKey}',
|
|
863
|
+
"vanityDomain": '{yourvanityDomain}',
|
|
864
|
+
"cloud": "beta", # Optional when authenticating to an alternative cloud environment
|
|
865
|
+
"logging": {"enabled": False, "verbose": False},
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
def main():
|
|
869
|
+
with ZscalerClient(config) as client:
|
|
870
|
+
users, _, error = client.zidentity.groups.list_groups()
|
|
871
|
+
if error:
|
|
872
|
+
print(f"Error listing users: {error}")
|
|
873
|
+
return
|
|
874
|
+
|
|
875
|
+
print(f"Total users found: {len(users)}")
|
|
876
|
+
|
|
877
|
+
if __name__ == "__main__":
|
|
878
|
+
main()
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
### Zscaler Sandbox Authentication
|
|
882
|
+
|
|
883
|
+
To authenticate to the Zscaler Sandbox service you must authenticate by instantiating the `ZscalerClient`.
|
|
884
|
+
|
|
885
|
+
Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`. The following cloud environments are supported:
|
|
886
|
+
|
|
887
|
+
* `zscaler`
|
|
888
|
+
* `zscalerone`
|
|
889
|
+
* `zscalertwo`
|
|
890
|
+
* `zscalerthree`
|
|
891
|
+
* `zscloud`
|
|
892
|
+
* `zscalerbeta`
|
|
893
|
+
* `zscalergov`
|
|
894
|
+
* `zscalerten`
|
|
895
|
+
* `zspreview`
|
|
896
|
+
|
|
897
|
+
### Environment variables
|
|
898
|
+
|
|
899
|
+
You can provide credentials via the `ZSCALER_SANDBOX_TOKEN`, `ZSCALER_SANDBOX_CLOUD` environment variables, representing your Zscaler Sandbox authentication paraemters respectively `sandboxToken`, `sandboxCloud`
|
|
900
|
+
|
|
901
|
+
| Argument | Description | Environment variable |
|
|
902
|
+
|--------------|-------------|-------------------|
|
|
903
|
+
| `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
|
|
904
|
+
| `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
|
|
905
|
+
|
|
906
|
+
### Zscaler Sandbox Client Initialization
|
|
907
|
+
|
|
908
|
+
```py
|
|
909
|
+
from zscaler import ZscalerClient
|
|
910
|
+
|
|
911
|
+
config = {
|
|
912
|
+
"sandboxToken": '{yourSandboxToken}',
|
|
913
|
+
"sandboxCloud": '{yourSandboxCloud}',
|
|
914
|
+
"logging": {"enabled": False, "verbose": False},
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
def main():
|
|
918
|
+
|
|
919
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
920
|
+
file_path = os.path.join(script_dir, "test-pe-file.exe")
|
|
921
|
+
force_analysis = True
|
|
922
|
+
|
|
923
|
+
with ZscalerClient(config) as client:
|
|
924
|
+
submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
|
|
925
|
+
|
|
926
|
+
if err:
|
|
927
|
+
print(f"Error submitting file: {err}")
|
|
928
|
+
else:
|
|
929
|
+
print("File submitted successfully!")
|
|
930
|
+
print(f"Response: {submit}")
|
|
931
|
+
|
|
932
|
+
if __name__ == "__main__":
|
|
933
|
+
main()
|
|
934
|
+
```
|
|
935
|
+
|
|
936
|
+
### ZIA Legacy Client Initialization
|
|
937
|
+
|
|
938
|
+
```py
|
|
939
|
+
import random
|
|
940
|
+
from zscaler import ZscalerClient
|
|
941
|
+
|
|
942
|
+
config = {
|
|
943
|
+
"sandboxToken": '{yourSandboxToken}',
|
|
944
|
+
"sandboxCloud": '{yourSandboxCloud}',
|
|
945
|
+
"logging": {"enabled": False, "verbose": False},
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
def main():
|
|
949
|
+
|
|
950
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
951
|
+
file_path = os.path.join(script_dir, "test-pe-file.exe")
|
|
952
|
+
force_analysis = True
|
|
953
|
+
|
|
954
|
+
with ZscalerClient(config) as client:
|
|
955
|
+
submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
|
|
956
|
+
|
|
957
|
+
if err:
|
|
958
|
+
print(f"Error submitting file: {err}")
|
|
959
|
+
else:
|
|
960
|
+
print("File submitted successfully!")
|
|
961
|
+
print(f"Response: {submit}")
|
|
962
|
+
|
|
963
|
+
if __name__ == "__main__":
|
|
964
|
+
main()
|
|
965
|
+
```
|
|
966
|
+
|
|
806
967
|
## Zscaler Legacy API Framework
|
|
807
968
|
|
|
808
969
|
The legacy Zscaler API is still utilized by several customers, and will remain in place for the foreseeable future with no specific announced deprecation date.
|
|
@@ -1077,7 +1238,7 @@ The ZCC Cloud is identified by several cloud name prefixes, which determines whi
|
|
|
1077
1238
|
|
|
1078
1239
|
### Environment variables
|
|
1079
1240
|
|
|
1080
|
-
You can provide credentials via the `ZCC_CLIENT_ID`, `
|
|
1241
|
+
You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_SECRET`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
|
|
1081
1242
|
|
|
1082
1243
|
~> **NOTE** `ZCC_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
|
|
1083
1244
|
|
|
@@ -34,6 +34,7 @@ used in your server-side code to interact with the Zscaler API platform across m
|
|
|
34
34
|
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
35
35
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
36
36
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
37
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
37
38
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
38
39
|
* [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
|
|
39
40
|
|
|
@@ -174,6 +175,7 @@ In most cases, you won't need to build the SDK from source. If you want to build
|
|
|
174
175
|
* [OneAPI](https://help.zscaler.com/oneapi/understanding-oneapi)
|
|
175
176
|
* [ZPA API](https://help.zscaler.com/zpa/zpa-api/api-developer-reference-guide)
|
|
176
177
|
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
178
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
177
179
|
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
178
180
|
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
179
181
|
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
@@ -197,11 +199,14 @@ If your Zscaler tenant has not been migrated to the new Zscaler [Zidentity platf
|
|
|
197
199
|
|
|
198
200
|
## Zscaler OneAPI New Framework
|
|
199
201
|
|
|
200
|
-
As of the publication of SDK version =>
|
|
202
|
+
As of the publication of SDK version => 1.7.x, OneAPI is available for programmatic interaction with the following products:
|
|
201
203
|
|
|
202
|
-
* [
|
|
203
|
-
* [
|
|
204
|
-
* [
|
|
204
|
+
* [ZPA API](https://help.zscaler.com/zpa/zpa-api/api-developer-reference-guide)
|
|
205
|
+
* [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
206
|
+
* [ZIdentity](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
|
|
207
|
+
* [ZDX API](https://help.zscaler.com/zdx/understanding-zdx-api)
|
|
208
|
+
* [ZCC API](https://help.zscaler.com/client-connector/getting-started-client-connector-api)
|
|
209
|
+
* [ZTW API](https://help.zscaler.com/cloud-branch-connector/getting-started-cloud-branch-connector-api)
|
|
205
210
|
|
|
206
211
|
**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.
|
|
207
212
|
|
|
@@ -764,6 +769,162 @@ Each one of the configuration values above can be turned into an environment var
|
|
|
764
769
|
| `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
|
|
765
770
|
| `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
|
|
766
771
|
|
|
772
|
+
### Zscaler ZIdentity API
|
|
773
|
+
|
|
774
|
+
This SDK supports programmatic integration with the Zscaler ZIdentity API service.
|
|
775
|
+
|
|
776
|
+
The authentication to Zscaler ZIdentity service via the OneAPI framework, requires uses the API client `ZscalerClient`
|
|
777
|
+
|
|
778
|
+
| Argument | Description | Environment variable |
|
|
779
|
+
|--------------|-------------|-------------------|
|
|
780
|
+
| `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
|
|
781
|
+
| `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
|
|
782
|
+
| `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
|
|
783
|
+
| `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
|
|
784
|
+
| `cloud`
|
|
785
|
+
|
|
786
|
+
### Initialize OneAPI OAuth 2.0 Client
|
|
787
|
+
|
|
788
|
+
#### Zidentity OneAPI Client ID and Client Secret Authentication
|
|
789
|
+
|
|
790
|
+
Construct a client instance by passing your Zidentity `clientId`, `clientSecret` and `vanityDomain`:
|
|
791
|
+
|
|
792
|
+
```py
|
|
793
|
+
from zscaler import ZscalerClient
|
|
794
|
+
|
|
795
|
+
config = {
|
|
796
|
+
"clientId": '{yourClientId}',
|
|
797
|
+
"clientSecret": '{yourClientSecret}',
|
|
798
|
+
"vanityDomain": '{yourvanityDomain}',
|
|
799
|
+
"cloud": "beta", # Optional when authenticating to an alternative cloud environment
|
|
800
|
+
"logging": {"enabled": False, "verbose": False},
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
def main():
|
|
804
|
+
with ZscalerClient(config) as client:
|
|
805
|
+
users, _, error = client.zidentity.groups.list_groups()
|
|
806
|
+
if error:
|
|
807
|
+
print(f"Error listing users: {error}")
|
|
808
|
+
return
|
|
809
|
+
|
|
810
|
+
print(f"Total users found: {len(users)}")
|
|
811
|
+
|
|
812
|
+
if __name__ == "__main__":
|
|
813
|
+
main()
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
#### Zidentity OneAPI Client ID and Private Key Authentication
|
|
817
|
+
|
|
818
|
+
```py
|
|
819
|
+
from zscaler import ZscalerClient
|
|
820
|
+
|
|
821
|
+
config = {
|
|
822
|
+
"clientId": '{yourClientId}',
|
|
823
|
+
"privateKey": '{yourPrivateKey}',
|
|
824
|
+
"vanityDomain": '{yourvanityDomain}',
|
|
825
|
+
"cloud": "beta", # Optional when authenticating to an alternative cloud environment
|
|
826
|
+
"logging": {"enabled": False, "verbose": False},
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
def main():
|
|
830
|
+
with ZscalerClient(config) as client:
|
|
831
|
+
users, _, error = client.zidentity.groups.list_groups()
|
|
832
|
+
if error:
|
|
833
|
+
print(f"Error listing users: {error}")
|
|
834
|
+
return
|
|
835
|
+
|
|
836
|
+
print(f"Total users found: {len(users)}")
|
|
837
|
+
|
|
838
|
+
if __name__ == "__main__":
|
|
839
|
+
main()
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
### Zscaler Sandbox Authentication
|
|
843
|
+
|
|
844
|
+
To authenticate to the Zscaler Sandbox service you must authenticate by instantiating the `ZscalerClient`.
|
|
845
|
+
|
|
846
|
+
Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`. The following cloud environments are supported:
|
|
847
|
+
|
|
848
|
+
* `zscaler`
|
|
849
|
+
* `zscalerone`
|
|
850
|
+
* `zscalertwo`
|
|
851
|
+
* `zscalerthree`
|
|
852
|
+
* `zscloud`
|
|
853
|
+
* `zscalerbeta`
|
|
854
|
+
* `zscalergov`
|
|
855
|
+
* `zscalerten`
|
|
856
|
+
* `zspreview`
|
|
857
|
+
|
|
858
|
+
### Environment variables
|
|
859
|
+
|
|
860
|
+
You can provide credentials via the `ZSCALER_SANDBOX_TOKEN`, `ZSCALER_SANDBOX_CLOUD` environment variables, representing your Zscaler Sandbox authentication paraemters respectively `sandboxToken`, `sandboxCloud`
|
|
861
|
+
|
|
862
|
+
| Argument | Description | Environment variable |
|
|
863
|
+
|--------------|-------------|-------------------|
|
|
864
|
+
| `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
|
|
865
|
+
| `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
|
|
866
|
+
|
|
867
|
+
### Zscaler Sandbox Client Initialization
|
|
868
|
+
|
|
869
|
+
```py
|
|
870
|
+
from zscaler import ZscalerClient
|
|
871
|
+
|
|
872
|
+
config = {
|
|
873
|
+
"sandboxToken": '{yourSandboxToken}',
|
|
874
|
+
"sandboxCloud": '{yourSandboxCloud}',
|
|
875
|
+
"logging": {"enabled": False, "verbose": False},
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
def main():
|
|
879
|
+
|
|
880
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
881
|
+
file_path = os.path.join(script_dir, "test-pe-file.exe")
|
|
882
|
+
force_analysis = True
|
|
883
|
+
|
|
884
|
+
with ZscalerClient(config) as client:
|
|
885
|
+
submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
|
|
886
|
+
|
|
887
|
+
if err:
|
|
888
|
+
print(f"Error submitting file: {err}")
|
|
889
|
+
else:
|
|
890
|
+
print("File submitted successfully!")
|
|
891
|
+
print(f"Response: {submit}")
|
|
892
|
+
|
|
893
|
+
if __name__ == "__main__":
|
|
894
|
+
main()
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
### ZIA Legacy Client Initialization
|
|
898
|
+
|
|
899
|
+
```py
|
|
900
|
+
import random
|
|
901
|
+
from zscaler import ZscalerClient
|
|
902
|
+
|
|
903
|
+
config = {
|
|
904
|
+
"sandboxToken": '{yourSandboxToken}',
|
|
905
|
+
"sandboxCloud": '{yourSandboxCloud}',
|
|
906
|
+
"logging": {"enabled": False, "verbose": False},
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
def main():
|
|
910
|
+
|
|
911
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
912
|
+
file_path = os.path.join(script_dir, "test-pe-file.exe")
|
|
913
|
+
force_analysis = True
|
|
914
|
+
|
|
915
|
+
with ZscalerClient(config) as client:
|
|
916
|
+
submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
|
|
917
|
+
|
|
918
|
+
if err:
|
|
919
|
+
print(f"Error submitting file: {err}")
|
|
920
|
+
else:
|
|
921
|
+
print("File submitted successfully!")
|
|
922
|
+
print(f"Response: {submit}")
|
|
923
|
+
|
|
924
|
+
if __name__ == "__main__":
|
|
925
|
+
main()
|
|
926
|
+
```
|
|
927
|
+
|
|
767
928
|
## Zscaler Legacy API Framework
|
|
768
929
|
|
|
769
930
|
The legacy Zscaler API is still utilized by several customers, and will remain in place for the foreseeable future with no specific announced deprecation date.
|
|
@@ -1038,7 +1199,7 @@ The ZCC Cloud is identified by several cloud name prefixes, which determines whi
|
|
|
1038
1199
|
|
|
1039
1200
|
### Environment variables
|
|
1040
1201
|
|
|
1041
|
-
You can provide credentials via the `ZCC_CLIENT_ID`, `
|
|
1202
|
+
You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_SECRET`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
|
|
1042
1203
|
|
|
1043
1204
|
~> **NOTE** `ZCC_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
|
|
1044
1205
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "zscaler-sdk-python"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.7.0"
|
|
4
4
|
description = "Official Python SDK for the Zscaler Products"
|
|
5
5
|
authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -8,7 +8,7 @@ readme = "README.md"
|
|
|
8
8
|
homepage = "https://github.com/zscaler/zscaler-sdk-python"
|
|
9
9
|
repository = "https://github.com/zscaler/zscaler-sdk-python"
|
|
10
10
|
documentation = "https://zscaler-sdk-python.readthedocs.io"
|
|
11
|
-
keywords = ["zscaler", "sdk", "zpa", "zia", "zdx", "zcc", "ztw", "zwa"]
|
|
11
|
+
keywords = ["zscaler", "sdk", "zpa", "zia", "zdx", "zcc", "ztw", "zwa", "zidentity"]
|
|
12
12
|
classifiers = [
|
|
13
13
|
"Development Status :: 5 - Production/Stable",
|
|
14
14
|
"Intended Audience :: Developers",
|
|
@@ -124,7 +124,11 @@ def to_snake_case(string):
|
|
|
124
124
|
"extranetDTO": "extranet_dto",
|
|
125
125
|
"locationGroupDTO": "location_group_dto",
|
|
126
126
|
"locationDTO": "location_dto",
|
|
127
|
-
"predefinedADPControls": "predefined_adp_controls"
|
|
127
|
+
"predefinedADPControls": "predefined_adp_controls",
|
|
128
|
+
"runtimeOS": "runtime_os",
|
|
129
|
+
|
|
130
|
+
# ZIdentity Edge Cases
|
|
131
|
+
# "clientJWKsUrl": "clientJWKsUrl",
|
|
128
132
|
}
|
|
129
133
|
|
|
130
134
|
if string in FIELD_EXCEPTIONS:
|
|
@@ -256,7 +260,8 @@ def to_lower_camel_case(string):
|
|
|
256
260
|
"extranet_dto": "extranetDTO",
|
|
257
261
|
"location_group_dto": "locationGroupDTO",
|
|
258
262
|
"location_dto": "locationDTO",
|
|
259
|
-
"predefined_adp_controls": "predefinedADPControls"
|
|
263
|
+
"predefined_adp_controls": "predefinedADPControls",
|
|
264
|
+
"runtime_os": "runtimeOS"
|
|
260
265
|
}
|
|
261
266
|
|
|
262
267
|
if string in FIELD_EXCEPTIONS:
|
|
@@ -15,6 +15,7 @@ from zscaler.zdx.zdx_service import ZDXService
|
|
|
15
15
|
from zscaler.zia.zia_service import ZIAService
|
|
16
16
|
from zscaler.zpa.zpa_service import ZPAService
|
|
17
17
|
from zscaler.zwa.zwa_service import ZWAService
|
|
18
|
+
from zscaler.zidentity.zidentity_service import ZIdentityService
|
|
18
19
|
from zscaler.zcc.legacy import LegacyZCCClientHelper
|
|
19
20
|
from zscaler.ztw.legacy import LegacyZTWClientHelper
|
|
20
21
|
from zscaler.zdx.legacy import LegacyZDXClientHelper
|
|
@@ -187,6 +188,7 @@ class Client:
|
|
|
187
188
|
self._zwa = None
|
|
188
189
|
self._zpa = None
|
|
189
190
|
self._zdx = None
|
|
191
|
+
self._zidentity = None
|
|
190
192
|
# self.logger.debug("Client initialized successfully.")
|
|
191
193
|
|
|
192
194
|
def authenticate(self):
|
|
@@ -252,6 +254,12 @@ class Client:
|
|
|
252
254
|
self._zpa = ZPAService(self._request_executor, self._config)
|
|
253
255
|
return self._zpa
|
|
254
256
|
|
|
257
|
+
@property
|
|
258
|
+
def zidentity(self):
|
|
259
|
+
if self._zidentity is None:
|
|
260
|
+
self._zidentity = ZIdentityService(self._request_executor)
|
|
261
|
+
return self._zidentity
|
|
262
|
+
|
|
255
263
|
def __enter__(self):
|
|
256
264
|
"""
|
|
257
265
|
Automatically create and set session within context manager.
|
|
@@ -104,11 +104,11 @@ class HTTPClient:
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
# Handle payload
|
|
107
|
-
if
|
|
107
|
+
if "json" in request:
|
|
108
108
|
params["json"] = request["json"]
|
|
109
|
-
elif
|
|
109
|
+
elif "data" in request:
|
|
110
110
|
params["data"] = request["data"]
|
|
111
|
-
elif
|
|
111
|
+
elif "form" in request:
|
|
112
112
|
params["data"] = request["form"]
|
|
113
113
|
if request["params"]:
|
|
114
114
|
params["params"] = request["params"]
|
|
@@ -83,6 +83,7 @@ class RequestExecutor:
|
|
|
83
83
|
self.service = self._config["client"].get("service", "zia") # Default to ZIA
|
|
84
84
|
self.customer_id = self._config["client"].get("customerId") # Optional for ZIA/ZCC
|
|
85
85
|
self.microtenant_id = self._config["client"].get("microtenantId") # Optional for ZIA/ZCC
|
|
86
|
+
self.vanity_domain = self._config["client"].get("vanityDomain") # Required for zidentity service
|
|
86
87
|
|
|
87
88
|
# OAuth2 setup
|
|
88
89
|
self._oauth = OAuth(self, self._config)
|
|
@@ -127,6 +128,18 @@ class RequestExecutor:
|
|
|
127
128
|
# logger.debug(f"Determining base URL for cloud: {self.cloud}")
|
|
128
129
|
if "/zscsb" in endpoint:
|
|
129
130
|
return f"https://csbapi.{self.sandbox_cloud}.net"
|
|
131
|
+
|
|
132
|
+
# Special handling for zidentity service
|
|
133
|
+
if "/zidentity" in endpoint or "/admin/api/v1" in endpoint:
|
|
134
|
+
if not self.vanity_domain:
|
|
135
|
+
raise ValueError("vanityDomain is required for zidentity service")
|
|
136
|
+
|
|
137
|
+
# For zidentity, the URL pattern is: https://{{vanity_domain}}-admin.zslogin{{cloud}}.net/admin/api/v1
|
|
138
|
+
if self.cloud and self.cloud != "production":
|
|
139
|
+
return f"https://{self.vanity_domain}-admin.zslogin{self.cloud}.net/admin/api/v1"
|
|
140
|
+
else:
|
|
141
|
+
return f"https://{self.vanity_domain}-admin.zslogin.net/admin/api/v1"
|
|
142
|
+
|
|
130
143
|
if self.cloud and self.cloud != "production":
|
|
131
144
|
return f"https://api.{self.cloud}.zsapi.net"
|
|
132
145
|
return self.BASE_URL
|
|
@@ -147,7 +160,10 @@ class RequestExecutor:
|
|
|
147
160
|
return "zwa"
|
|
148
161
|
elif "/zpa" in url or "/mgmtconfig" in url:
|
|
149
162
|
return "zpa"
|
|
150
|
-
|
|
163
|
+
elif "/admin/api/v1" in url:
|
|
164
|
+
return "zidentity"
|
|
165
|
+
elif "/admin" in url:
|
|
166
|
+
return "admin"
|
|
151
167
|
if self.use_legacy_client:
|
|
152
168
|
url = self.remove_oneapi_endpoint_prefix(url)
|
|
153
169
|
# Recheck for service type after removing the prefix
|
|
@@ -163,11 +179,13 @@ class RequestExecutor:
|
|
|
163
179
|
return "zwa"
|
|
164
180
|
elif "/zpa" in url or "/mgmtconfig" in url:
|
|
165
181
|
return "zpa"
|
|
182
|
+
elif "/admin/api/v1" in url:
|
|
183
|
+
return "zidentity"
|
|
166
184
|
|
|
167
185
|
raise ValueError(f"Unsupported service: {url}")
|
|
168
186
|
|
|
169
187
|
def remove_oneapi_endpoint_prefix(self, endpoint: str) -> str:
|
|
170
|
-
prefixes = ["/zia", "/zpa", "/zcc", "/ztw", "/zdx", "/zwa"]
|
|
188
|
+
prefixes = ["admin", "/zia", "/zpa", "/zcc", "/ztw", "/zdx", "/zwa"]
|
|
171
189
|
for prefix in prefixes:
|
|
172
190
|
if endpoint.startswith(prefix):
|
|
173
191
|
return endpoint[len(prefix) :]
|
|
@@ -188,7 +206,9 @@ class RequestExecutor:
|
|
|
188
206
|
logger.error(f"Service detection failed: {e}")
|
|
189
207
|
raise
|
|
190
208
|
|
|
191
|
-
|
|
209
|
+
# Preserve empty lists, only convert None to empty dict
|
|
210
|
+
if body is None:
|
|
211
|
+
body = {}
|
|
192
212
|
headers = headers or {}
|
|
193
213
|
params = params or {}
|
|
194
214
|
|
|
@@ -212,6 +232,11 @@ class RequestExecutor:
|
|
|
212
232
|
else:
|
|
213
233
|
base_url = self.get_base_url(endpoint)
|
|
214
234
|
|
|
235
|
+
# Special handling for zidentity to avoid endpoint duplication
|
|
236
|
+
if service_type == "zidentity" and endpoint.startswith("/admin/api/v1/"):
|
|
237
|
+
# Remove the /admin/api/v1 prefix since it's already in the base URL
|
|
238
|
+
endpoint = endpoint[len("/admin/api/v1/"):]
|
|
239
|
+
|
|
215
240
|
final_url = f"{base_url}/{endpoint.lstrip('/')}"
|
|
216
241
|
|
|
217
242
|
headers = self._prepare_headers(headers, endpoint)
|
|
@@ -236,17 +236,39 @@ def transform_common_id_fields(id_groups: list, source_dict: dict, target_dict:
|
|
|
236
236
|
final_list = []
|
|
237
237
|
for item in value:
|
|
238
238
|
if isinstance(item, (str, int)):
|
|
239
|
-
|
|
239
|
+
# Try to convert to int, but keep as string if it's not a valid integer
|
|
240
|
+
if isinstance(item, str):
|
|
241
|
+
try:
|
|
242
|
+
final_list.append({"id": int(item)})
|
|
243
|
+
except ValueError:
|
|
244
|
+
# Keep as string if it's not a valid integer (e.g., 'ihln05ktj07ds')
|
|
245
|
+
final_list.append({"id": item})
|
|
246
|
+
else:
|
|
247
|
+
final_list.append({"id": int(item)})
|
|
240
248
|
elif isinstance(item, dict) and "id" in item:
|
|
241
249
|
# Possibly user gave { "id": 123, ... }
|
|
242
|
-
|
|
250
|
+
if isinstance(item["id"], str):
|
|
251
|
+
try:
|
|
252
|
+
item["id"] = int(item["id"])
|
|
253
|
+
except ValueError:
|
|
254
|
+
# Keep as string if it's not a valid integer
|
|
255
|
+
pass
|
|
256
|
+
else:
|
|
257
|
+
item["id"] = int(item["id"])
|
|
243
258
|
final_list.append(item)
|
|
244
259
|
else:
|
|
245
260
|
final_list.append(item)
|
|
246
261
|
target_dict[payload_key] = final_list
|
|
247
262
|
elif isinstance(value, dict) and "id" in value:
|
|
248
263
|
# single dict with ID
|
|
249
|
-
|
|
264
|
+
if isinstance(value["id"], str):
|
|
265
|
+
try:
|
|
266
|
+
value["id"] = int(value["id"])
|
|
267
|
+
except ValueError:
|
|
268
|
+
# Keep as string if it's not a valid integer
|
|
269
|
+
pass
|
|
270
|
+
else:
|
|
271
|
+
value["id"] = int(value["id"])
|
|
250
272
|
target_dict[payload_key] = value
|
|
251
273
|
return
|
|
252
274
|
|
|
@@ -46,7 +46,7 @@ class AdminAPI(APIClient):
|
|
|
46
46
|
Examples:
|
|
47
47
|
Prints all configured departments.
|
|
48
48
|
|
|
49
|
-
>>> dept_list, _, err = client.zdx.admin.list_departments(
|
|
49
|
+
>>> dept_list, _, err = client.zdx.admin.list_departments()
|
|
50
50
|
... if err:
|
|
51
51
|
... print(f"Error listing department: {err}")
|
|
52
52
|
... return
|