zscaler-sdk-python 1.2.1__tar.gz → 1.2.2__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.2.1 → zscaler_sdk_python-1.2.2}/PKG-INFO +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/pyproject.toml +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/__init__.py +1 -1
- zscaler_sdk_python-1.2.2/zscaler/helpers.py +264 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_response.py +9 -135
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/request_executor.py +10 -2
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/utils.py +47 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/admin_user.py +11 -13
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/company.py +15 -10
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/devices.py +60 -44
- zscaler_sdk_python-1.2.2/zscaler/zcc/models/admin_user.py +145 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/devices.py +198 -0
- zscaler_sdk_python-1.2.2/zscaler/zcc/models/getcompanyinfo.py +1322 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_connector_groups.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_connectors.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_segment_by_type.py +1 -68
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_segments_inspection.py +1 -2
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_segments_pra.py +1 -2
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/certificates.py +2 -2
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cloud_connector_groups.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/customer_version_profile.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/emergency_access.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/enrollment_certificates.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/idp.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/lss.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/machine_groups.py +1 -3
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/microtenants.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/policies.py +1 -3
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/posture_profiles.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/pra_approval.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/pra_console.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/pra_credential.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/pra_credential_pool.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/pra_portal.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/provisioning.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/saml_attributes.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/scim_attributes.py +1 -4
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/scim_groups.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/segment_groups.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/server_groups.py +2 -2
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/servers.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/service_edge_group.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/service_edges.py +1 -1
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/trusted_networks.py +1 -1
- zscaler_sdk_python-1.2.1/zscaler/helpers.py +0 -160
- zscaler_sdk_python-1.2.1/zscaler/zcc/models/admin_user.py +0 -69
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/LICENSE.md +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/README.md +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/api_client.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/config/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/config/config_setter.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/config/config_validator.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/constants.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/error_messages.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_client.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_collection.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_http_client.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_oauth_client.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/oneapi_object.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/entitlements.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/fail_open_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/forwarding_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/manage_pass.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/failopenpolicy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/forwardingprofile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/manage_pass.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/secrets_otp.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/secrets_passwords.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/trustednetworks.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/webappservice.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/webpolicy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/webprivacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/secrets.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/trusted_networks.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/web_app_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/web_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/web_privacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zcc/zcc_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/admin.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/activeapplications.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/administration.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/alerts.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/application_users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/applications.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/call_quality_metrics.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/common.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/devices.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/software_inventory.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/models/users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zdx/zdx_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/admin_roles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/admin_users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/atp_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_applications.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_apps.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_firewall.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_firewall_dns.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_firewall_ips.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/dns_gatways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/end_user_notification.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/file_type_control_rule.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/gre_tunnel.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/iot_report.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/malware_protection_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/activation.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/advanced_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/advanced_threat_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/alert_subscriptions.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/apptotal.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/authentication_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/bandwidth_classes.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_app_instances.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_app_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloud_nss.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/common.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/device_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/devices.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dlp_dictionary.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dlp_engine.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dlp_resources.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dlp_templates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dlp_web_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/dns_gatways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/endusernotification.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/filetyperules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/forwarding_control_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/ftp_control_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/gre_recommended_list.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/gre_tunnel_info.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/gre_tunnels.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/gre_vips.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/intermediate_certificates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/iotreport.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/ipv6_config.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/location_group.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/location_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/malware_protection_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/mobile_threat_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/nss_servers.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/organization_information.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/pac_files.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/proxies.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/proxy_gatways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/remoteassistance.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/rule_labels.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/sandboxrules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/shadow_it_report.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/subclouds.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/system_audit.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/time_intervals.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/url_filtering_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/urlcategory.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/user_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/workload_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/models/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/nat_control_policy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/nss_servers.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/organization_information.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/pac_files.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/policy_export.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/proxies.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/remote_assistance.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/risk_profiles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/rule_labels.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/sandbox_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/security_policy_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/ssl_inspection_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/sub_clouds.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/system_audit.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/tenancy_restriction_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/time_intervals.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/traffic_datacenters.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/traffic_extranet.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/traffic_static_ip.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/user_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/zia_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/app_protection.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/application_segment.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cbi_region.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/client_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/customer_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/administrator_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/app_connector_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/app_connector_schedule.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/app_connectors.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/app_protection.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/application_segment.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/application_segment_inspection.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/application_segment_pra.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/application_servers.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cbi_banner.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cbi_certificate.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cbi_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cbi_region.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/certificates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/client_settings.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/common.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/customer_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/customer_version_profile.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/emergency_access.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/enrollment_certificates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/idp.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/lss.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/machine_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/microtenants.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/posture_profiles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/pra_approval.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/pra_console.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/pra_credential.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/pra_portal.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/provisioning_keys.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/role_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/saml_attributes.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/scim_attributes.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/scim_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/segment_group.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/server_group.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/service_edge_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/service_edges.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/models/trusted_network.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/role_controller.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/service_edge_schedule.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zpa/zpa_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/account_details.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/activation.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/admin_roles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/admin_users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/api_keys.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/ec_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/ip_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/location_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/location_template.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/activation.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/admin_roles.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/admin_users.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/api_keys.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/common.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/ec_group_vm.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/ecgroup.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/forwarding_gateways.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/forwarding_rules.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/ip_destination_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/ip_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/ip_source_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/location_management.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/location_templates.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/nw_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/models/zpa_resources.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/nw_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/nw_service_groups.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/provisioning_url.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/ztw/ztw_service.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/__init__.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/audit_logs.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/dlp_incidents.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/legacy.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/audit_logs.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/change_history.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/common.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/generated_tickets.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/incident_details.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/incident_evidence.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/incident_group_search.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/incident_search.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/models/incident_trigger.py +0 -0
- {zscaler_sdk_python-1.2.1 → zscaler_sdk_python-1.2.2}/zscaler/zwa/zwa_service.py +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Module contains different helper functions.
|
|
3
|
+
Module is independent from any zscaler modules.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import re
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def to_snake_case(string):
|
|
10
|
+
"""
|
|
11
|
+
Converts camelCase or PascalCase to snake_case.
|
|
12
|
+
Applies known field-specific corrections first.
|
|
13
|
+
"""
|
|
14
|
+
FIELD_EXCEPTIONS = {
|
|
15
|
+
"predefinedADPControls": "predefined_adp_controls",
|
|
16
|
+
"surrogateIP": "surrogate_ip",
|
|
17
|
+
"surrogateIPEnforcedForKnownBrowsers": "surrogate_ip_enforced_for_known_browsers",
|
|
18
|
+
"capturePCAP": "capture_pcap",
|
|
19
|
+
"internalIpRange": "internal_ip_range",
|
|
20
|
+
"startIPAddress": "start_ip_address",
|
|
21
|
+
"endIPAddress": "end_ip_address",
|
|
22
|
+
"minTLSVersion": "min_tls_version",
|
|
23
|
+
"minClientTLSVersion": "min_client_tls_version",
|
|
24
|
+
"minServerTLSVersion": "min_server_tls_version",
|
|
25
|
+
"pacWithStaticIPs": "pac_with_static_ips",
|
|
26
|
+
"primaryGW": "primary_gw",
|
|
27
|
+
"secondaryGW": "secondary_gw",
|
|
28
|
+
"greTunnelIP": "gre_tunnel_ip",
|
|
29
|
+
"tunID": "tun_id",
|
|
30
|
+
"isIncompleteDRConfig": "is_incomplete_dr_config",
|
|
31
|
+
"nameL10nTag": "name_l10n_tag",
|
|
32
|
+
"isNameL10nTag": "is_name_l10n_tag",
|
|
33
|
+
"routableIP": "routable_ip",
|
|
34
|
+
"validSSLCertificate": "valid_ssl_certificate",
|
|
35
|
+
"ecVMs": "ec_vms",
|
|
36
|
+
"ipV6Enabled": "ipv6_enabled",
|
|
37
|
+
"emailIds": "email_ids",
|
|
38
|
+
"showEUN": "show_eun",
|
|
39
|
+
"showEUNATP": "show_eunatp",
|
|
40
|
+
"enableCIPACompliance": "enable_cipa_compliance",
|
|
41
|
+
"enablePOEPrompt": "enable_poe_prompt",
|
|
42
|
+
"cookieStealingPCAPEnabled": "cookie_stealing_pcap_enabled",
|
|
43
|
+
"alertForUnknownOrSuspiciousC2Traffic": "alert_for_unknown_or_suspicious_c2_traffic",
|
|
44
|
+
"enableIPv6DnsResolutionOnTransparentProxy": "enable_ipv6_dns_resolution_on_transparent_proxy",
|
|
45
|
+
"enableEvaluatePolicyOnGlobalSSLBypass": "enable_evaluate_policy_on_global_ssl_bypass",
|
|
46
|
+
"dnsResolutionOnTransparentProxyIPv6ExemptApps": "dns_resolution_on_transparent_proxy_ipv6_exempt_apps",
|
|
47
|
+
"dnsResolutionOnTransparentProxyIPv6UrlCategories": "dns_resolution_on_transparent_proxy_ipv6_url_categories",
|
|
48
|
+
"dnsResolutionOnTransparentProxyIPv6Apps": "dns_resolution_on_transparent_proxy_ipv6_apps",
|
|
49
|
+
"enableIPv6DnsOptimizationOnAllTransparentProxy": "enable_ipv6_dns_optimization_on_all_transparent_proxy",
|
|
50
|
+
"dnsResolutionOnTransparentProxyIPv6ExemptUrlCategories": "dns_resolution_on_transparent_proxy_ipv6_exempt_url_categories",
|
|
51
|
+
"endPointDLPLogType": "end_point_dlp_log_type",
|
|
52
|
+
"emailDLPLogType": "email_dlp_log_type",
|
|
53
|
+
"extranetDNSList": "extranet_dns_list",
|
|
54
|
+
"primaryDNSServer": "primary_dns_server",
|
|
55
|
+
"secondaryDNSServer": "secondary_dns_server",
|
|
56
|
+
|
|
57
|
+
# ZCC Edge Case Attributes
|
|
58
|
+
"enableUDPTransportSelection": "enable_udp_transport_selection",
|
|
59
|
+
"interceptZIATrafficAllAdapters": "intercept_zia_traffic_all_adapters",
|
|
60
|
+
"enablePortBasedZPAFilter": "enable_port_based_zpa_filter",
|
|
61
|
+
"addAppBypassToVPNGateway": "add_app_bypass_to_vpn_gateway",
|
|
62
|
+
"showVPNTunNotification": "show_vpn_tun_notification",
|
|
63
|
+
"enableSetProxyOnVPNAdapters": "enable_set_proxy_on_vpn_adapters",
|
|
64
|
+
"disableDNSRouteExclusion": "disable_dns_route_exclusion",
|
|
65
|
+
"enableReactUI": "enable_react_ui",
|
|
66
|
+
"ziaGlobalDbUrlForDR": "zia_global_db_url_for_dr",
|
|
67
|
+
"useDefaultAdapterForDNS": "use_default_adapter_for_dns",
|
|
68
|
+
"enablePublicAPI": "enable_public_api",
|
|
69
|
+
"launchReactUIbyDefault": "launch_react_u_iby_default",
|
|
70
|
+
"addZDXServiceEntitlement": "add_zdx_service_entitlement",
|
|
71
|
+
"computeDeviceGroupsForZIA": "compute_device_groups_for_zia",
|
|
72
|
+
"computeDeviceGroupsForZPA": "compute_device_groups_for_zpa",
|
|
73
|
+
"computeDeviceGroupsForZAD": "compute_device_groups_for_zad",
|
|
74
|
+
"computeDeviceGroupsForZAD": "compute_device_groups_for_zad",
|
|
75
|
+
"deleteDHCPOption121RoutesVisibility": "delete_dhcp_option121_routes_visibility",
|
|
76
|
+
"enableOneIDAdminMigrationChanges": "enable_one_id_admin_migration_changes",
|
|
77
|
+
"purgeKerberosPreferredDCCacheVisibility": "purge_kerberos_preferred_dc_cache_visibility",
|
|
78
|
+
"slowRolloutZCC": "slow_rollout_zcc",
|
|
79
|
+
"supportMultiplePWLPostures": "support_multiple_pwl_postures",
|
|
80
|
+
"truncateLargeUDPDNSResponseVisibility": "truncate_large_udpdns_response_visibility",
|
|
81
|
+
"enforceSplitDNSVisibility": "enforce_split_dns_visibility",
|
|
82
|
+
"zccSyntheticIPRangeVisibility": "zcc_synthetic_ip_range_visibility",
|
|
83
|
+
"enableSetProxyOnVPNAdaptersVisibility": "enable_set_proxy_on_vpn_adapters_visibility",
|
|
84
|
+
"customMTUForZpaVisibility": "custom_mtu_for_zpa_visibility",
|
|
85
|
+
"flowLoggerZCCBlockedTrafficVisibility": "flow_logger_zcc_blocked_traffic_visibility",
|
|
86
|
+
"postureCrowdStrikeZTAScoreVisibilityForLinux": "posture_crowd_strike_zta_score_visibility_for_linux",
|
|
87
|
+
"flowLoggerVPNTunnelTypeVisibility": "flow_logger_vpn_tunnel_type_visibility",
|
|
88
|
+
"flowLoggerVPNTypeVisibility": "flow_logger_vpn_type_visibility",
|
|
89
|
+
"flowLoggerZPATypeVisibility": "flow_logger_zpa_type_visibility",
|
|
90
|
+
"useDefaultAdapterForDNSVisibility": "use_default_adapter_for_dns_visibility",
|
|
91
|
+
"useCustomDNS": "use_custom_dns",
|
|
92
|
+
"notificationForZPAReauthVisibility": "notification_for_zpa_reauth_visibility",
|
|
93
|
+
"crowdStrikeZTAScoreVisibility": "crowd_strike_zta_score_visibility",
|
|
94
|
+
"hideDTLSSupportSettings": "hide_dtls_support_settings",
|
|
95
|
+
"dynamicZPAServiceEdgeAssignmenttVisibility": "dynamic_zpa_service_edge_assignmentt_visibility",
|
|
96
|
+
"domainInclusionExclusionForDNSRequestVisibility": "domain_inclusion_exclusion_for_dns_request_visibility",
|
|
97
|
+
"overrideATCmdByPolicyVisibility": "override_at_cmd_by_policy_visibility",
|
|
98
|
+
"windowsAPCaptivePortalDetectionVisibility": "windows_ap_captive_portal_detection_visibility",
|
|
99
|
+
"windowsAPEnableFailOpenVisibility": "windows_ap_enable_fail_open_visibility",
|
|
100
|
+
"enableOneIDPhase2Changes": "enable_one_id_phase2_changes",
|
|
101
|
+
"linuxRPMBuildVisibility": "linux_rpm_build_visibility",
|
|
102
|
+
"crowdStrikeZTAOsScoreVisibility": "crowd_strike_zta_os_score_visibility",
|
|
103
|
+
"crowdStrikeZTASensorConfigScoreVisibility": "crowd_strike_zta_sensor_config_score_visibility",
|
|
104
|
+
"enableZCCFailCloseSettingsForSEMode": "enable_zcc_fail_close_settings_for_se_mode",
|
|
105
|
+
"defaultProtocolForZPA": "default_protocol_for_zpa",
|
|
106
|
+
"tunnelTwoForiOSDevices": "tunnel_two_fori_os_devices",
|
|
107
|
+
"prioritizeIPv4OverIpv6": "prioritize_ipv4_over_ipv6",
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if string in FIELD_EXCEPTIONS:
|
|
111
|
+
return FIELD_EXCEPTIONS[string]
|
|
112
|
+
|
|
113
|
+
# Generic fallback logic
|
|
114
|
+
string = re.sub(r"(?<!^)(?=[A-Z])", "_", string).lower()
|
|
115
|
+
return string.replace("__", "_").strip("_")
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def to_lower_camel_case(string):
|
|
119
|
+
"""
|
|
120
|
+
Converts snake_case to camelCase with support for known edge-case field mappings.
|
|
121
|
+
|
|
122
|
+
Examples:
|
|
123
|
+
"internal_ip_range" -> "internalIpRange"
|
|
124
|
+
"surrogate_ip" -> "surrogateIP"
|
|
125
|
+
"capture_pcap" -> "capturePCAP"
|
|
126
|
+
"""
|
|
127
|
+
|
|
128
|
+
FIELD_EXCEPTIONS = {
|
|
129
|
+
"predefined_adp_controls": "predefinedADPControls",
|
|
130
|
+
"surrogate_ip": "surrogateIP",
|
|
131
|
+
"internal_ip_range": "internalIpRange",
|
|
132
|
+
"start_ip_address": "startIPAddress",
|
|
133
|
+
"end_ip_address": "endIPAddress",
|
|
134
|
+
"capture_pcap": "capturePCAP",
|
|
135
|
+
"min_tls_version": "minTLSVersion",
|
|
136
|
+
"min_client_tls_version": "minClientTLSVersion",
|
|
137
|
+
"min_server_tls_version": "minServerTLSVersion",
|
|
138
|
+
"pac_with_static_ips": "pacWithStaticIPs",
|
|
139
|
+
"primary_gw": "primaryGW",
|
|
140
|
+
"secondary_gw": "secondaryGW",
|
|
141
|
+
"greTunnel_ip": "greTunnelIP",
|
|
142
|
+
"tun_id": "tunID",
|
|
143
|
+
"is_incomplete_dr_config": "isIncompleteDRConfig",
|
|
144
|
+
"name_l10n_tag": "nameL10nTag",
|
|
145
|
+
"is_name_l10n_tag": "isNameL10nTag",
|
|
146
|
+
"routable_ip": "routableIP",
|
|
147
|
+
"valid_ssl_certificate": "validSSLCertificate",
|
|
148
|
+
"ec_vms": "ecVMs",
|
|
149
|
+
"ipv6_enabled": "ipV6Enabled",
|
|
150
|
+
"email_ids": "emailIds",
|
|
151
|
+
"show_eun": "showEUN",
|
|
152
|
+
"show_eunatp": "showEUNATP",
|
|
153
|
+
"enable_cipa_compliance": "enableCIPACompliance",
|
|
154
|
+
"enable_poe_prompt": "enablePOEPrompt",
|
|
155
|
+
"cookie_stealing_pcap_enabled": "cookieStealingPCAPEnabled",
|
|
156
|
+
"alert_for_unknown_or_suspicious_c2_traffic": "alertForUnknownOrSuspiciousC2Traffic",
|
|
157
|
+
"enable_ipv6_dns_resolution_on_transparent_proxy": "enableIPv6DnsResolutionOnTransparentProxy",
|
|
158
|
+
"enable_evaluate_policy_on_global_ssl_bypass": "enableEvaluatePolicyOnGlobalSSLBypass",
|
|
159
|
+
"dns_resolution_on_transparent_proxy_ipv6_exempt_apps": "dnsResolutionOnTransparentProxyIPv6ExemptApps",
|
|
160
|
+
"dns_resolution_on_transparent_proxy_ipv6_url_categories": "dnsResolutionOnTransparentProxyIPv6UrlCategories",
|
|
161
|
+
"dns_resolution_on_transparent_proxy_ipv6_apps": "dnsResolutionOnTransparentProxyIPv6Apps",
|
|
162
|
+
"enable_ipv6_dns_optimization_on_all_transparent_proxy": "enableIPv6DnsOptimizationOnAllTransparentProxy",
|
|
163
|
+
"dns_resolution_on_transparent_proxy_ipv6_exempt_url_categories": "dnsResolutionOnTransparentProxyIPv6ExemptUrlCategories",
|
|
164
|
+
"end_point_dlp_log_type": "endPointDLPLogType",
|
|
165
|
+
"email_dlp_log_type": "emailDLPLogType",
|
|
166
|
+
"extranet_dns_list": "extranetDNSList",
|
|
167
|
+
"primary_dns_server": "primaryDNSServer",
|
|
168
|
+
"secondary_dns_server": "secondaryDNSServer",
|
|
169
|
+
|
|
170
|
+
# ZCC Edge Case Attributes
|
|
171
|
+
"enable_udp_transport_selection": "enableUDPTransportSelection",
|
|
172
|
+
"intercept_zia_traffic_all_adapters": "interceptZIATrafficAllAdapters",
|
|
173
|
+
"enable_port_based_zpa_filter": "enablePortBasedZPAFilter",
|
|
174
|
+
"add_app_bypass_to_vpn_gateway": "addAppBypassToVPNGateway",
|
|
175
|
+
"show_vpn_tun_notification": "showVPNTunNotification",
|
|
176
|
+
"enable_set_proxy_on_vpn_adapters": "enableSetProxyOnVPNAdapters",
|
|
177
|
+
"disable_dns_route_exclusion": "disableDNSRouteExclusion",
|
|
178
|
+
"enable_react_ui": "enableReactUI",
|
|
179
|
+
"zia_global_db_url_for_dr": "ziaGlobalDbUrlForDR",
|
|
180
|
+
"use_default_adapter_for_dns": "useDefaultAdapterForDNS",
|
|
181
|
+
"enable_public_api": "enablePublicAPI",
|
|
182
|
+
"launch_react_u_iby_default": "launchReactUIbyDefault",
|
|
183
|
+
"add_zdx_service_entitlement": "addZDXServiceEntitlement",
|
|
184
|
+
"compute_device_groups_for_zia": "computeDeviceGroupsForZIA",
|
|
185
|
+
"compute_device_groups_for_zpa": "computeDeviceGroupsForZPA",
|
|
186
|
+
"compute_device_groups_for_zad": "computeDeviceGroupsForZAD",
|
|
187
|
+
"delete_dhcp_option121_routes_visibility": "deleteDHCPOption121RoutesVisibility",
|
|
188
|
+
"enable_one_id_admin_migration_changes": "enableOneIDAdminMigrationChanges",
|
|
189
|
+
"purge_kerberos_preferred_dc_cache_visibility": "purgeKerberosPreferredDCCacheVisibility",
|
|
190
|
+
"slow_rollout_zcc": "slowRolloutZCC",
|
|
191
|
+
"support_multiple_pwl_postures": "supportMultiplePWLPostures",
|
|
192
|
+
"truncate_large_udpdns_response_visibility": "truncateLargeUDPDNSResponseVisibility",
|
|
193
|
+
"enforce_split_dns_visibility": "enforceSplitDNSVisibility",
|
|
194
|
+
"zcc_synthetic_ip_range_visibility": "zccSyntheticIPRangeVisibility",
|
|
195
|
+
"enable_set_proxy_on_vpn_adapters_visibility": "enableSetProxyOnVPNAdaptersVisibility",
|
|
196
|
+
"custom_mtu_for_zpa_visibility": "customMTUForZpaVisibility",
|
|
197
|
+
"flow_logger_zcc_blocked_traffic_visibility": "flowLoggerZCCBlockedTrafficVisibility",
|
|
198
|
+
"posture_crowd_strike_zta_score_visibility_for_linux": "postureCrowdStrikeZTAScoreVisibilityForLinux",
|
|
199
|
+
"flow_logger_vpn_tunnel_type_visibility": "flowLoggerVPNTunnelTypeVisibility",
|
|
200
|
+
"flow_logger_vpn_type_visibility": "flowLoggerVPNTypeVisibility",
|
|
201
|
+
"flow_logger_zpa_type_visibility": "flowLoggerZPATypeVisibility",
|
|
202
|
+
"use_default_adapter_for_dns_visibility": "useDefaultAdapterForDNSVisibility",
|
|
203
|
+
"use_custom_dns": "useCustomDNS",
|
|
204
|
+
"notification_for_zpa_reauth_visibility": "notificationForZPAReauthVisibility",
|
|
205
|
+
"crowd_strike_zta_score_visibility": "crowdStrikeZTAScoreVisibility",
|
|
206
|
+
"hide_dtls_support_settings": "hideDTLSSupportSettings",
|
|
207
|
+
"dynamic_zpa_service_edge_assignmentt_visibility": "dynamicZPAServiceEdgeAssignmenttVisibility",
|
|
208
|
+
"domain_inclusion_exclusion_for_dns_request_visibility": "domainInclusionExclusionForDNSRequestVisibility",
|
|
209
|
+
"override_at_cmd_by_policy_visibility": "overrideATCmdByPolicyVisibility",
|
|
210
|
+
"windows_ap_captive_portal_detection_visibility": "windowsAPCaptivePortalDetectionVisibility",
|
|
211
|
+
"windows_ap_enable_fail_open_visibility": "windowsAPEnableFailOpenVisibility",
|
|
212
|
+
"enable_one_id_phase2_changes": "enableOneIDPhase2Changes",
|
|
213
|
+
"linux_rpm_build_visibility": "linuxRPMBuildVisibility",
|
|
214
|
+
"crowd_strike_zta_os_score_visibility": "crowdStrikeZTAOsScoreVisibility",
|
|
215
|
+
"crowd_strike_zta_sensor_config_score_visibility": "crowdStrikeZTASensorConfigScoreVisibility",
|
|
216
|
+
"enable_zcc_fail_close_settings_for_se_mode": "enableZCCFailCloseSettingsForSEMode",
|
|
217
|
+
"default_protocol_for_zpa": "defaultProtocolForZPA",
|
|
218
|
+
"tunnelTwoForiOSDevices": "tunnel_two_fori_os_devices",
|
|
219
|
+
"prioritize_ipv4_over_ipv6": "prioritizeIPv4OverIpv6",
|
|
220
|
+
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if string in FIELD_EXCEPTIONS:
|
|
224
|
+
return FIELD_EXCEPTIONS[string]
|
|
225
|
+
|
|
226
|
+
if not string or "_" not in string:
|
|
227
|
+
return string
|
|
228
|
+
|
|
229
|
+
components = string.split("_")
|
|
230
|
+
converted = []
|
|
231
|
+
|
|
232
|
+
for i, comp in enumerate(components):
|
|
233
|
+
lower = comp.lower()
|
|
234
|
+
if i == 0:
|
|
235
|
+
converted.append(lower)
|
|
236
|
+
else:
|
|
237
|
+
converted.append(comp.capitalize())
|
|
238
|
+
|
|
239
|
+
return "".join(converted)
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def convert_keys_to_snake_case(data):
|
|
243
|
+
"""
|
|
244
|
+
Convert all keys in a dictionary or list to snake_case.
|
|
245
|
+
"""
|
|
246
|
+
if isinstance(data, dict):
|
|
247
|
+
return {to_snake_case(k): convert_keys_to_snake_case(v) for k, v in data.items()}
|
|
248
|
+
elif isinstance(data, list):
|
|
249
|
+
return [convert_keys_to_snake_case(item) for item in data]
|
|
250
|
+
else:
|
|
251
|
+
return data
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def convert_keys_to_camel_case(data):
|
|
255
|
+
"""
|
|
256
|
+
Recursively convert all keys in a dictionary or list to camelCase.
|
|
257
|
+
Handles nested lists and dictionaries.
|
|
258
|
+
"""
|
|
259
|
+
if isinstance(data, dict):
|
|
260
|
+
return {to_lower_camel_case(k): convert_keys_to_camel_case(v) for k, v in data.items()}
|
|
261
|
+
elif isinstance(data, list):
|
|
262
|
+
return [convert_keys_to_camel_case(item) for item in data]
|
|
263
|
+
else:
|
|
264
|
+
return data
|
|
@@ -78,19 +78,7 @@ class ZscalerAPIResponse:
|
|
|
78
78
|
|
|
79
79
|
if res_details:
|
|
80
80
|
content_type = res_details.headers.get("Content-Type", "").lower()
|
|
81
|
-
|
|
82
|
-
# self._build_json_response(response_body)
|
|
83
|
-
# else:
|
|
84
|
-
# # Attempt JSON parse, else store as text
|
|
85
|
-
# try:
|
|
86
|
-
# self._build_json_response(response_body)
|
|
87
|
-
# except json.JSONDecodeError:
|
|
88
|
-
# self._body = response_body
|
|
89
|
-
# else:
|
|
90
|
-
# try:
|
|
91
|
-
# self._build_json_response(response_body)
|
|
92
|
-
# except json.JSONDecodeError:
|
|
93
|
-
# self._body = response_body
|
|
81
|
+
|
|
94
82
|
if "application/json" in content_type:
|
|
95
83
|
try:
|
|
96
84
|
self._build_json_response(response_body)
|
|
@@ -178,46 +166,6 @@ class ZscalerAPIResponse:
|
|
|
178
166
|
|
|
179
167
|
self._items_fetched += len(self._list)
|
|
180
168
|
self._pages_fetched += 1
|
|
181
|
-
|
|
182
|
-
# def _build_json_response(self, response_body):
|
|
183
|
-
# """
|
|
184
|
-
# Converts JSON response text into Python dictionary.
|
|
185
|
-
# Ensures consistent model conversion for all pages.
|
|
186
|
-
# """
|
|
187
|
-
# self._body = json.loads(response_body)
|
|
188
|
-
|
|
189
|
-
# # Extract the list based on service type
|
|
190
|
-
# if isinstance(self._body, list):
|
|
191
|
-
# self._list = self._body
|
|
192
|
-
# elif self._service_type == "ZDX":
|
|
193
|
-
# self._list = self._body.get("items", [])
|
|
194
|
-
# self._next_offset = self._body.get("next_offset")
|
|
195
|
-
# else:
|
|
196
|
-
# self._list = self._body.get("list", [])
|
|
197
|
-
# if self._service_type == "ZPA":
|
|
198
|
-
# self._total_pages = int(self._body.get("totalPages", 1))
|
|
199
|
-
# self._total_count = int(self._body.get("totalCount", 0))
|
|
200
|
-
|
|
201
|
-
# # Clean and convert items
|
|
202
|
-
# cleaned_list = []
|
|
203
|
-
# for item in self._list:
|
|
204
|
-
# if not isinstance(item, dict):
|
|
205
|
-
# logger.warning("Non-dict item found in response list, skipping: %s", item)
|
|
206
|
-
# continue
|
|
207
|
-
|
|
208
|
-
# # Convert to model if type is specified
|
|
209
|
-
# if self._type:
|
|
210
|
-
# try:
|
|
211
|
-
# cleaned_list.append(self._type(**item))
|
|
212
|
-
# except Exception as e:
|
|
213
|
-
# logger.error("Failed to convert item to model: %s", e)
|
|
214
|
-
# cleaned_list.append(item)
|
|
215
|
-
# else:
|
|
216
|
-
# cleaned_list.append(item)
|
|
217
|
-
|
|
218
|
-
# self._list = cleaned_list
|
|
219
|
-
# self._items_fetched += len(self._list)
|
|
220
|
-
# self._pages_fetched += 1
|
|
221
169
|
|
|
222
170
|
def get_results(self):
|
|
223
171
|
"""
|
|
@@ -225,6 +173,14 @@ class ZscalerAPIResponse:
|
|
|
225
173
|
The initial call to the API returns only one page.
|
|
226
174
|
"""
|
|
227
175
|
logger.debug("Fetching current page results")
|
|
176
|
+
|
|
177
|
+
if self._service_type.upper() == "ZCC" and self._type:
|
|
178
|
+
try:
|
|
179
|
+
return [self._type(item) for item in self._list if isinstance(item, dict)]
|
|
180
|
+
except Exception as wrap_error:
|
|
181
|
+
logger.warning(f"Failed to wrap results with {self._type}: {wrap_error}")
|
|
182
|
+
return self._list
|
|
183
|
+
|
|
228
184
|
return self._list
|
|
229
185
|
|
|
230
186
|
def has_next(self):
|
|
@@ -236,48 +192,6 @@ class ZscalerAPIResponse:
|
|
|
236
192
|
"""
|
|
237
193
|
return self._has_next()
|
|
238
194
|
|
|
239
|
-
# def next(self):
|
|
240
|
-
# """
|
|
241
|
-
# Fetch the next page of results if available.
|
|
242
|
-
|
|
243
|
-
# Returns:
|
|
244
|
-
# tuple: (list of items, error)
|
|
245
|
-
|
|
246
|
-
# If there's an error fetching the next page, returns (None, error).
|
|
247
|
-
# If no more pages exist, returns (None, None).
|
|
248
|
-
# """
|
|
249
|
-
# if not self.has_next():
|
|
250
|
-
# logger.debug("No further pages to retrieve.")
|
|
251
|
-
# return (None, None)
|
|
252
|
-
|
|
253
|
-
# next_page_results = self._fetch_next_page()
|
|
254
|
-
# if next_page_results is None:
|
|
255
|
-
# # An error occurred, already logged
|
|
256
|
-
# return (None, ValueError("Error fetching next page."))
|
|
257
|
-
# if not next_page_results:
|
|
258
|
-
# # Empty result means no more data
|
|
259
|
-
# return (None, None)
|
|
260
|
-
# return (next_page_results, None)
|
|
261
|
-
|
|
262
|
-
### Latest working function
|
|
263
|
-
# def next(self):
|
|
264
|
-
# if not self.has_next():
|
|
265
|
-
# raise StopIteration("No more pages available.")
|
|
266
|
-
|
|
267
|
-
# results, error = self._fetch_next_page()
|
|
268
|
-
# if error:
|
|
269
|
-
# return None, error
|
|
270
|
-
# if not results:
|
|
271
|
-
# return None, None
|
|
272
|
-
|
|
273
|
-
# if self._type:
|
|
274
|
-
# try:
|
|
275
|
-
# results = [self._type(item) for item in results if isinstance(item, dict)]
|
|
276
|
-
# except Exception as wrap_error:
|
|
277
|
-
# logger.warning(f"Failed to wrap pagination results with {self._type}: {wrap_error}")
|
|
278
|
-
|
|
279
|
-
# return results, None
|
|
280
|
-
|
|
281
195
|
def next(self):
|
|
282
196
|
if not self.has_next():
|
|
283
197
|
raise StopIteration("No more pages available.")
|
|
@@ -297,39 +211,6 @@ class ZscalerAPIResponse:
|
|
|
297
211
|
return results, self, None
|
|
298
212
|
|
|
299
213
|
|
|
300
|
-
# def _fetch_next_page(self):
|
|
301
|
-
# """
|
|
302
|
-
# Internal method that fetches and returns the next page of results.
|
|
303
|
-
# """
|
|
304
|
-
# if not self._has_next():
|
|
305
|
-
# logger.debug("No more pages to fetch")
|
|
306
|
-
# return []
|
|
307
|
-
|
|
308
|
-
# if self._service_type == "ZDX":
|
|
309
|
-
# self._params["offset"] = self._next_offset
|
|
310
|
-
# else:
|
|
311
|
-
# self._page += 1
|
|
312
|
-
# self._params["page"] = self._page
|
|
313
|
-
|
|
314
|
-
# logger.debug(f"Requesting next page with params: {self._params}")
|
|
315
|
-
|
|
316
|
-
# req = {
|
|
317
|
-
# "method": "GET",
|
|
318
|
-
# "url": self._url,
|
|
319
|
-
# "headers": self._headers,
|
|
320
|
-
# "params": self._params,
|
|
321
|
-
# "uuid": uuid.uuid4(),
|
|
322
|
-
# }
|
|
323
|
-
# _, _, response_body, error = self._request_executor.fire_request(req)
|
|
324
|
-
|
|
325
|
-
# if error:
|
|
326
|
-
# logger.error(f"Error fetching the next page: {error}")
|
|
327
|
-
# return None
|
|
328
|
-
|
|
329
|
-
# # Rebuild the response body for the next page
|
|
330
|
-
# self._build_json_response(response_body)
|
|
331
|
-
# return self._list
|
|
332
|
-
|
|
333
214
|
def _fetch_next_page(self):
|
|
334
215
|
if not self._has_next():
|
|
335
216
|
logger.debug("No more pages to fetch")
|
|
@@ -360,13 +241,6 @@ class ZscalerAPIResponse:
|
|
|
360
241
|
return self._list, None
|
|
361
242
|
|
|
362
243
|
def _has_next(self):
|
|
363
|
-
# Check max_items or max_pages constraints
|
|
364
|
-
# if self._max_items is not None and self._items_fetched >= self._max_items:
|
|
365
|
-
# logger.debug("Reached max items limit: %d", self._max_items)
|
|
366
|
-
# return False
|
|
367
|
-
# if self._max_pages is not None and self._pages_fetched >= self._max_pages:
|
|
368
|
-
# logger.debug("Reached max pages limit: %d", self._max_pages)
|
|
369
|
-
# return False
|
|
370
244
|
|
|
371
245
|
if self._service_type == "ZPA":
|
|
372
246
|
# More pages if current page < total_pages
|
|
@@ -14,8 +14,9 @@ from zscaler.zdx.legacy import LegacyZDXClientHelper
|
|
|
14
14
|
from zscaler.zpa.legacy import LegacyZPAClientHelper
|
|
15
15
|
from zscaler.zia.legacy import LegacyZIAClientHelper
|
|
16
16
|
from zscaler.zwa.legacy import LegacyZWAClientHelper
|
|
17
|
+
# from zscaler.logger import setup_logging # ✅ Import here
|
|
17
18
|
|
|
18
|
-
logger = logging.getLogger(
|
|
19
|
+
logger = logging.getLogger('zscaler-sdk-python')
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class RequestExecutor:
|
|
@@ -75,6 +76,13 @@ class RequestExecutor:
|
|
|
75
76
|
self._config = config
|
|
76
77
|
self._cache = cache
|
|
77
78
|
|
|
79
|
+
# ✅ Setup logging based on config flags
|
|
80
|
+
# log_config = self._config["client"].get("logging", {})
|
|
81
|
+
# setup_logging(
|
|
82
|
+
# enabled=log_config.get("enabled", False),
|
|
83
|
+
# verbose=log_config.get("verbose", False),
|
|
84
|
+
# )
|
|
85
|
+
|
|
78
86
|
# Retrieve cloud, service, and customer ID (optional)
|
|
79
87
|
self.cloud = self._config["client"].get("cloud", "production").lower()
|
|
80
88
|
self.sandbox_cloud = self._config["client"].get("sandboxCloud", "").lower()
|
|
@@ -462,7 +470,7 @@ class RequestExecutor:
|
|
|
462
470
|
req_timeout = self._request_timeout
|
|
463
471
|
|
|
464
472
|
if req_timeout > 0 and (current_req_start_time - request_start_time) > req_timeout:
|
|
465
|
-
logger.
|
|
473
|
+
logger.warning("Request Timeout exceeded.")
|
|
466
474
|
return None, None, None, Exception("Request Timeout exceeded.")
|
|
467
475
|
|
|
468
476
|
response, error = self._http_client.send_request(request)
|
|
@@ -26,7 +26,7 @@ import time
|
|
|
26
26
|
from typing import Dict, Optional
|
|
27
27
|
from urllib.parse import urlencode
|
|
28
28
|
from datetime import datetime as dt
|
|
29
|
-
|
|
29
|
+
from functools import wraps
|
|
30
30
|
import pytz
|
|
31
31
|
from box import Box, BoxList
|
|
32
32
|
from dateutil import parser
|
|
@@ -783,6 +783,52 @@ def format_url(base_string):
|
|
|
783
783
|
"""
|
|
784
784
|
return "".join([line.strip() for line in base_string.splitlines()])
|
|
785
785
|
|
|
786
|
+
def zcc_param_mapper(func):
|
|
787
|
+
@wraps(func)
|
|
788
|
+
def wrapper(self, *args, **kwargs):
|
|
789
|
+
query_params = kwargs.get("query_params", {}) or {}
|
|
790
|
+
mapped_params = {}
|
|
791
|
+
|
|
792
|
+
# Normalize and map os_types
|
|
793
|
+
if "os_types" in query_params:
|
|
794
|
+
os_raw = query_params["os_types"]
|
|
795
|
+
if isinstance(os_raw, str):
|
|
796
|
+
os_raw = [os_raw] # ✅ support single string value
|
|
797
|
+
|
|
798
|
+
mapped = [
|
|
799
|
+
str(zcc_param_map["os"].get(os_type.lower()))
|
|
800
|
+
for os_type in os_raw
|
|
801
|
+
if zcc_param_map["os"].get(os_type.lower())
|
|
802
|
+
]
|
|
803
|
+
if not mapped:
|
|
804
|
+
raise ValueError("Invalid `os_types` provided.")
|
|
805
|
+
mapped_params["osTypes"] = ",".join(mapped)
|
|
806
|
+
|
|
807
|
+
# Normalize and map registration_types
|
|
808
|
+
if "registration_types" in query_params:
|
|
809
|
+
reg_raw = query_params["registration_types"]
|
|
810
|
+
if isinstance(reg_raw, str):
|
|
811
|
+
reg_raw = [reg_raw]
|
|
812
|
+
|
|
813
|
+
mapped = [
|
|
814
|
+
str(zcc_param_map["reg_type"].get(rt.lower()))
|
|
815
|
+
for rt in reg_raw
|
|
816
|
+
if zcc_param_map["reg_type"].get(rt.lower())
|
|
817
|
+
]
|
|
818
|
+
if not mapped:
|
|
819
|
+
raise ValueError("Invalid `registration_types` provided.")
|
|
820
|
+
mapped_params["registrationTypes"] = ",".join(mapped)
|
|
821
|
+
|
|
822
|
+
# Drop user-friendly keys
|
|
823
|
+
query_params.pop("os_types", None)
|
|
824
|
+
query_params.pop("registration_types", None)
|
|
825
|
+
|
|
826
|
+
# Merge in mapped numeric params
|
|
827
|
+
query_params.update(mapped_params)
|
|
828
|
+
kwargs["query_params"] = query_params
|
|
829
|
+
|
|
830
|
+
return func(self, *args, **kwargs)
|
|
831
|
+
return wrapper
|
|
786
832
|
|
|
787
833
|
# Maps ZCC numeric os_type and registration_type arguments to a human-readable string
|
|
788
834
|
zcc_param_map = {
|
|
@@ -17,7 +17,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
17
17
|
from zscaler.api_client import APIClient
|
|
18
18
|
from zscaler.request_executor import RequestExecutor
|
|
19
19
|
from zscaler.utils import format_url
|
|
20
|
-
from zscaler.zcc.models.admin_user import AdminUser
|
|
20
|
+
from zscaler.zcc.models.admin_user import AdminUser, AdminUserSyncInfo
|
|
21
21
|
from zscaler.zcc.models.admin_roles import AdminRoles
|
|
22
22
|
|
|
23
23
|
|
|
@@ -92,9 +92,11 @@ class AdminUserAPI(APIClient):
|
|
|
92
92
|
Examples:
|
|
93
93
|
Prints all admins in the Client Connector Portal to the console:
|
|
94
94
|
|
|
95
|
-
>>>
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
>>> sync_info, _, error = client.zcc.admin_user.get_admin_user_sync_info()
|
|
96
|
+
>>> if error:
|
|
97
|
+
... print(f"Error: {error}")
|
|
98
|
+
... return
|
|
99
|
+
... print(sync_info.as_dict())
|
|
98
100
|
"""
|
|
99
101
|
http_method = "get".upper()
|
|
100
102
|
api_url = format_url(
|
|
@@ -108,20 +110,19 @@ class AdminUserAPI(APIClient):
|
|
|
108
110
|
headers = {}
|
|
109
111
|
|
|
110
112
|
request, error = self._request_executor.create_request(http_method, api_url, body, headers)
|
|
111
|
-
|
|
112
113
|
if error:
|
|
113
|
-
return None
|
|
114
|
+
return None, None, error
|
|
114
115
|
|
|
115
116
|
response, error = self._request_executor.execute(request)
|
|
116
117
|
if error:
|
|
117
|
-
return None
|
|
118
|
+
return None, response, error
|
|
118
119
|
|
|
119
120
|
try:
|
|
120
|
-
result = self.form_response_body(response.get_body())
|
|
121
|
+
result = AdminUserSyncInfo(self.form_response_body(response.get_body()))
|
|
121
122
|
except Exception as error:
|
|
122
|
-
return None
|
|
123
|
+
return None, response, error
|
|
123
124
|
|
|
124
|
-
return result
|
|
125
|
+
return result, response, None
|
|
125
126
|
|
|
126
127
|
def list_admin_roles(self, query_params=None) -> tuple:
|
|
127
128
|
"""
|
|
@@ -152,7 +153,6 @@ class AdminUserAPI(APIClient):
|
|
|
152
153
|
|
|
153
154
|
query_params = query_params or {}
|
|
154
155
|
|
|
155
|
-
# Prepare request body and headers
|
|
156
156
|
body = {}
|
|
157
157
|
headers = {}
|
|
158
158
|
|
|
@@ -198,7 +198,6 @@ class AdminUserAPI(APIClient):
|
|
|
198
198
|
"""
|
|
199
199
|
)
|
|
200
200
|
|
|
201
|
-
# Prepare request body and headers
|
|
202
201
|
body = {}
|
|
203
202
|
headers = {}
|
|
204
203
|
|
|
@@ -244,7 +243,6 @@ class AdminUserAPI(APIClient):
|
|
|
244
243
|
"""
|
|
245
244
|
)
|
|
246
245
|
|
|
247
|
-
# Prepare request body and headers
|
|
248
246
|
body = {}
|
|
249
247
|
headers = {}
|
|
250
248
|
|