zscaler-sdk-python 1.6.0__tar.gz → 1.7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/PKG-INFO +230 -6
  2. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/README.md +228 -4
  3. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/pyproject.toml +2 -2
  4. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/__init__.py +1 -1
  5. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/errors/response_checker.py +1 -1
  6. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/helpers.py +4 -1
  7. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_client.py +8 -0
  8. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_response.py +29 -2
  9. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/request_executor.py +25 -2
  10. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/utils.py +25 -3
  11. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/admin.py +1 -1
  12. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/admin_roles.py +1 -1
  13. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_nss.py +9 -5
  14. zscaler_sdk_python-1.7.1/zscaler/zia/cloud_to_cloud_ir.py +294 -0
  15. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dlp_dictionary.py +5 -2
  16. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/legacy.py +11 -0
  17. zscaler_sdk_python-1.7.1/zscaler/zia/models/cloud_to_cloud_ir.py +488 -0
  18. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/rule_labels.py +1 -1
  19. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/url_categories.py +5 -3
  20. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/zia_service.py +10 -0
  21. zscaler_sdk_python-1.7.1/zscaler/zidentity/api_client.py +537 -0
  22. zscaler_sdk_python-1.7.1/zscaler/zidentity/groups.py +623 -0
  23. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/api_client.py +349 -0
  24. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/common.py +93 -0
  25. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/groups.py +191 -0
  26. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/resource_servers.py +219 -0
  27. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/user_entitlement.py +162 -0
  28. zscaler_sdk_python-1.7.1/zscaler/zidentity/models/users.py +182 -0
  29. zscaler_sdk_python-1.7.1/zscaler/zidentity/resource_servers.py +151 -0
  30. zscaler_sdk_python-1.7.1/zscaler/zidentity/user_entitlement.py +125 -0
  31. zscaler_sdk_python-1.7.1/zscaler/zidentity/users.py +396 -0
  32. zscaler_sdk_python-1.7.1/zscaler/zidentity/zidentity_service.py +70 -0
  33. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/user_portal_controller.py +5 -3
  34. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/user_portal_link.py +44 -30
  35. zscaler_sdk_python-1.7.1/zscaler/zwa/__init__.py +0 -0
  36. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/LICENSE.md +0 -0
  37. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/api_client.py +0 -0
  38. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/cache/__init__.py +0 -0
  39. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/cache/cache.py +0 -0
  40. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/cache/no_op_cache.py +0 -0
  41. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/cache/zscaler_cache.py +0 -0
  42. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/config/__init__.py +0 -0
  43. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/config/config_setter.py +0 -0
  44. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/config/config_validator.py +0 -0
  45. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/constants.py +0 -0
  46. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/error_messages.py +0 -0
  47. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/errors/__init__.py +0 -0
  48. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/errors/error.py +0 -0
  49. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/errors/http_error.py +0 -0
  50. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/errors/zscaler_api_error.py +0 -0
  51. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/exceptions/__init__.py +0 -0
  52. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/exceptions/exceptions.py +0 -0
  53. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/logger.py +0 -0
  54. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_collection.py +0 -0
  55. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_http_client.py +0 -0
  56. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_oauth_client.py +0 -0
  57. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/oneapi_object.py +0 -0
  58. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ratelimiter/__init__.py +0 -0
  59. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ratelimiter/ratelimiter.py +0 -0
  60. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/user_agent.py +0 -0
  61. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/__init__.py +0 -0
  62. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/admin_user.py +0 -0
  63. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/company.py +0 -0
  64. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/devices.py +0 -0
  65. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/entitlements.py +0 -0
  66. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/fail_open_policy.py +0 -0
  67. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/forwarding_profile.py +0 -0
  68. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/legacy.py +0 -0
  69. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/admin_roles.py +0 -0
  70. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/admin_user.py +0 -0
  71. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/devices.py +0 -0
  72. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/failopenpolicy.py +0 -0
  73. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/forwardingprofile.py +0 -0
  74. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/getcompanyinfo.py +0 -0
  75. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/manage_pass.py +0 -0
  76. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/secrets_otp.py +0 -0
  77. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/secrets_passwords.py +0 -0
  78. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/trustednetworks.py +0 -0
  79. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/webappservice.py +0 -0
  80. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/webpolicy.py +0 -0
  81. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/webprivacy.py +0 -0
  82. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  83. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  84. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/secrets.py +0 -0
  85. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/trusted_networks.py +0 -0
  86. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/web_app_service.py +0 -0
  87. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/web_policy.py +0 -0
  88. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/web_privacy.py +0 -0
  89. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zcc/zcc_service.py +0 -0
  90. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/__init__.py +0 -0
  91. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/alerts.py +0 -0
  92. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/apps.py +0 -0
  93. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/devices.py +0 -0
  94. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/inventory.py +0 -0
  95. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/legacy.py +0 -0
  96. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/activeapplications.py +0 -0
  97. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/administration.py +0 -0
  98. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/alerts.py +0 -0
  99. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/application_users.py +0 -0
  100. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/applications.py +0 -0
  101. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/call_quality_metrics.py +0 -0
  102. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/common.py +0 -0
  103. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/devices.py +0 -0
  104. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/software_inventory.py +0 -0
  105. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/troubleshooting.py +0 -0
  106. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/models/users.py +0 -0
  107. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/troubleshooting.py +0 -0
  108. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/users.py +0 -0
  109. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zdx/zdx_service.py +0 -0
  110. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/__init__.py +0 -0
  111. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/activate.py +0 -0
  112. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/admin_users.py +0 -0
  113. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/advanced_settings.py +0 -0
  114. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/alert_subscriptions.py +0 -0
  115. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/apptotal.py +0 -0
  116. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/atp_policy.py +0 -0
  117. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/audit_logs.py +0 -0
  118. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/authentication_settings.py +0 -0
  119. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/bandwidth_classes.py +0 -0
  120. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/bandwidth_control_rules.py +0 -0
  121. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/browser_control_settings.py +0 -0
  122. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/casb_dlp_rules.py +0 -0
  123. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/casb_malware_rules.py +0 -0
  124. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_app_instances.py +0 -0
  125. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_applications.py +0 -0
  126. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_browser_isolation.py +0 -0
  127. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_firewall.py +0 -0
  128. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_firewall_dns.py +0 -0
  129. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_firewall_ips.py +0 -0
  130. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloud_firewall_rules.py +0 -0
  131. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/cloudappcontrol.py +0 -0
  132. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dedicated_ip_gateways.py +0 -0
  133. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/device_management.py +0 -0
  134. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dlp_engine.py +0 -0
  135. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dlp_resources.py +0 -0
  136. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dlp_templates.py +0 -0
  137. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dlp_web_rules.py +0 -0
  138. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/dns_gatways.py +0 -0
  139. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/end_user_notification.py +0 -0
  140. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/file_type_control_rule.py +0 -0
  141. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/forwarding_control.py +0 -0
  142. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/ftp_control_policy.py +0 -0
  143. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/gre_tunnel.py +0 -0
  144. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/intermediate_certificates.py +0 -0
  145. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/iot_report.py +0 -0
  146. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/ipv6_config.py +0 -0
  147. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/locations.py +0 -0
  148. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/malware_protection_policy.py +0 -0
  149. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/mobile_threat_settings.py +0 -0
  150. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/__init__.py +0 -0
  151. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/activation.py +0 -0
  152. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/admin_roles.py +0 -0
  153. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/admin_users.py +0 -0
  154. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/advanced_settings.py +0 -0
  155. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  156. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/alert_subscriptions.py +0 -0
  157. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/apptotal.py +0 -0
  158. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/authentication_settings.py +0 -0
  159. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/bandwidth_classes.py +0 -0
  160. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
  161. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/browser_control_settings.py +0 -0
  162. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/casb_dlp_rules.py +0 -0
  163. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/casb_malware_rules.py +0 -0
  164. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_app_instances.py +0 -0
  165. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_app_policy.py +0 -0
  166. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
  167. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
  168. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
  169. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
  170. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
  171. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
  172. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
  173. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
  174. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
  175. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
  176. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
  177. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
  178. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloud_nss.py +0 -0
  179. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/cloudappcontrol.py +0 -0
  180. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/common.py +0 -0
  181. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
  182. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/device_groups.py +0 -0
  183. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/devices.py +0 -0
  184. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dlp_dictionary.py +0 -0
  185. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dlp_engine.py +0 -0
  186. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dlp_resources.py +0 -0
  187. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dlp_templates.py +0 -0
  188. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dlp_web_rules.py +0 -0
  189. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/dns_gateways.py +0 -0
  190. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/endusernotification.py +0 -0
  191. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/filetyperules.py +0 -0
  192. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/forwarding_control_policy.py +0 -0
  193. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/ftp_control_policy.py +0 -0
  194. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/gre_recommended_list.py +0 -0
  195. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/gre_tunnel_info.py +0 -0
  196. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/gre_tunnels.py +0 -0
  197. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/gre_vips.py +0 -0
  198. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/intermediate_certificates.py +0 -0
  199. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/iotreport.py +0 -0
  200. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/ipv6_config.py +0 -0
  201. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/location_group.py +0 -0
  202. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/location_management.py +0 -0
  203. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/malware_protection_settings.py +0 -0
  204. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/mobile_threat_settings.py +0 -0
  205. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/nat_control_policy.py +0 -0
  206. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/nss_servers.py +0 -0
  207. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/organization_information.py +0 -0
  208. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/pac_files.py +0 -0
  209. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/proxies.py +0 -0
  210. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/proxy_gateways.py +0 -0
  211. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/remoteassistance.py +0 -0
  212. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/risk_profiles.py +0 -0
  213. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/rule_labels.py +0 -0
  214. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/saas_security_api.py +0 -0
  215. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/sandboxrules.py +0 -0
  216. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/security_policy_settings.py +0 -0
  217. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/shadow_it_report.py +0 -0
  218. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
  219. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/subclouds.py +0 -0
  220. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/system_audit.py +0 -0
  221. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
  222. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/time_intervals.py +0 -0
  223. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/traffic_datacenters.py +0 -0
  224. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
  225. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/traffic_extranet.py +0 -0
  226. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/traffic_static_ip.py +0 -0
  227. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
  228. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  229. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/url_filtering_rules.py +0 -0
  230. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/urlcategory.py +0 -0
  231. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/user_management.py +0 -0
  232. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/vzen_clusters.py +0 -0
  233. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/workload_groups.py +0 -0
  234. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/models/zpa_gateway.py +0 -0
  235. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/nat_control_policy.py +0 -0
  236. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/nss_servers.py +0 -0
  237. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/organization_information.py +0 -0
  238. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/pac_files.py +0 -0
  239. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/policy_export.py +0 -0
  240. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/proxies.py +0 -0
  241. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/remote_assistance.py +0 -0
  242. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/risk_profiles.py +0 -0
  243. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/saas_security_api.py +0 -0
  244. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/sandbox.py +0 -0
  245. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/sandbox_rules.py +0 -0
  246. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/security_policy_settings.py +0 -0
  247. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/shadow_it_report.py +0 -0
  248. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/ssl_inspection_rules.py +0 -0
  249. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/sub_clouds.py +0 -0
  250. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/system_audit.py +0 -0
  251. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/tenancy_restriction_profile.py +0 -0
  252. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/time_intervals.py +0 -0
  253. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/traffic_datacenters.py +0 -0
  254. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/traffic_extranet.py +0 -0
  255. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/traffic_static_ip.py +0 -0
  256. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/traffic_vpn_credentials.py +0 -0
  257. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/url_filtering.py +0 -0
  258. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/user_management.py +0 -0
  259. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/vzen_clusters.py +0 -0
  260. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/workload_groups.py +0 -0
  261. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zia/zpa_gateway.py +0 -0
  262. {zscaler_sdk_python-1.6.0/zscaler/zpa → zscaler_sdk_python-1.7.1/zscaler/zidentity}/__init__.py +0 -0
  263. {zscaler_sdk_python-1.6.0/zscaler/ztw → zscaler_sdk_python-1.7.1/zscaler/zpa}/__init__.py +0 -0
  264. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/admin_sso_controller.py +0 -0
  265. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/administrator_controller.py +0 -0
  266. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/api_keys.py +0 -0
  267. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_connector_groups.py +0 -0
  268. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_connector_schedule.py +0 -0
  269. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_connectors.py +0 -0
  270. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_protection.py +0 -0
  271. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_segment_by_type.py +0 -0
  272. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_segments_ba.py +0 -0
  273. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_segments_ba_v2.py +0 -0
  274. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_segments_inspection.py +0 -0
  275. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/app_segments_pra.py +0 -0
  276. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/application_segment.py +0 -0
  277. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/c2c_ip_ranges.py +0 -0
  278. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cbi_banner.py +0 -0
  279. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cbi_certificate.py +0 -0
  280. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cbi_profile.py +0 -0
  281. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cbi_region.py +0 -0
  282. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cbi_zpa_profile.py +0 -0
  283. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/certificates.py +0 -0
  284. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/client_settings.py +0 -0
  285. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/cloud_connector_groups.py +0 -0
  286. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/config_override_controller.py +0 -0
  287. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/customer_controller.py +0 -0
  288. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/customer_domain.py +0 -0
  289. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/customer_version_profile.py +0 -0
  290. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/emergency_access.py +0 -0
  291. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/enrollment_certificates.py +0 -0
  292. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/idp.py +0 -0
  293. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/legacy.py +0 -0
  294. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/lss.py +0 -0
  295. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/machine_groups.py +0 -0
  296. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/microtenants.py +0 -0
  297. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/administrator_controller.py +0 -0
  298. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/api_keys.py +0 -0
  299. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/app_connector_groups.py +0 -0
  300. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/app_connector_schedule.py +0 -0
  301. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/app_connectors.py +0 -0
  302. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
  303. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/app_protection_profile.py +0 -0
  304. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/application_segment.py +0 -0
  305. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/application_segment_lb.py +0 -0
  306. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/application_servers.py +0 -0
  307. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/c2c_ip_ranges.py +0 -0
  308. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cbi_banner.py +0 -0
  309. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cbi_certificate.py +0 -0
  310. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cbi_profile.py +0 -0
  311. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cbi_region.py +0 -0
  312. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
  313. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/certificates.py +0 -0
  314. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/client_settings.py +0 -0
  315. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
  316. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/common.py +0 -0
  317. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/config_override_controller.py +0 -0
  318. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/customer_controller.py +0 -0
  319. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/customer_domain.py +0 -0
  320. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/customer_version_profile.py +0 -0
  321. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/emergency_access.py +0 -0
  322. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/enrollment_certificates.py +0 -0
  323. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/idp.py +0 -0
  324. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/lss.py +0 -0
  325. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/machine_groups.py +0 -0
  326. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/microtenants.py +0 -0
  327. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/npn_client_controller.py +0 -0
  328. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
  329. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
  330. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/posture_profiles.py +0 -0
  331. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/pra_approval.py +0 -0
  332. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/pra_console.py +0 -0
  333. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
  334. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/pra_credential.py +0 -0
  335. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/pra_portal.py +0 -0
  336. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/private_cloud_controller.py +0 -0
  337. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/private_cloud_group.py +0 -0
  338. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/provisioning_keys.py +0 -0
  339. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/role_controller.py +0 -0
  340. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/saml_attributes.py +0 -0
  341. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/scim_attributes.py +0 -0
  342. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/scim_groups.py +0 -0
  343. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/segment_group.py +0 -0
  344. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/server_group.py +0 -0
  345. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/service_edge_groups.py +0 -0
  346. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/service_edge_schedule.py +0 -0
  347. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/service_edges.py +0 -0
  348. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/trusted_network.py +0 -0
  349. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/models/user_portal_link.py +0 -0
  350. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/npn_client_controller.py +0 -0
  351. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/policies.py +0 -0
  352. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/posture_profiles.py +0 -0
  353. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/pra_approval.py +0 -0
  354. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/pra_console.py +0 -0
  355. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/pra_credential.py +0 -0
  356. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/pra_credential_pool.py +0 -0
  357. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/pra_portal.py +0 -0
  358. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/private_cloud_controller.py +0 -0
  359. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/private_cloud_group.py +0 -0
  360. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/provisioning.py +0 -0
  361. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/role_controller.py +0 -0
  362. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/saml_attributes.py +0 -0
  363. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/scim_attributes.py +0 -0
  364. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/scim_groups.py +0 -0
  365. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/segment_groups.py +0 -0
  366. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/server_groups.py +0 -0
  367. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/servers.py +0 -0
  368. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/service_edge_group.py +0 -0
  369. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/service_edge_schedule.py +0 -0
  370. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/service_edges.py +0 -0
  371. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/trusted_networks.py +0 -0
  372. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/user_portal_controller.py +0 -0
  373. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zpa/zpa_service.py +0 -0
  374. {zscaler_sdk_python-1.6.0/zscaler/zwa → zscaler_sdk_python-1.7.1/zscaler/ztw}/__init__.py +0 -0
  375. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/account_details.py +0 -0
  376. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/activation.py +0 -0
  377. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/admin_roles.py +0 -0
  378. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/admin_users.py +0 -0
  379. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/api_keys.py +0 -0
  380. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/ec_groups.py +0 -0
  381. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/forwarding_gateways.py +0 -0
  382. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/forwarding_rules.py +0 -0
  383. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/ip_destination_groups.py +0 -0
  384. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/ip_groups.py +0 -0
  385. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/ip_source_groups.py +0 -0
  386. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/legacy.py +0 -0
  387. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/location_management.py +0 -0
  388. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/location_template.py +0 -0
  389. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/activation.py +0 -0
  390. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/admin_roles.py +0 -0
  391. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/admin_users.py +0 -0
  392. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/api_keys.py +0 -0
  393. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/common.py +0 -0
  394. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/ec_group_vm.py +0 -0
  395. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/ecgroup.py +0 -0
  396. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/forwarding_gateways.py +0 -0
  397. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/forwarding_rules.py +0 -0
  398. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/ip_destination_groups.py +0 -0
  399. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/ip_groups.py +0 -0
  400. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/ip_source_groups.py +0 -0
  401. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/location_management.py +0 -0
  402. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/location_templates.py +0 -0
  403. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/nw_service.py +0 -0
  404. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/nw_service_groups.py +0 -0
  405. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/provisioning_url.py +0 -0
  406. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
  407. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/models/zpa_resources.py +0 -0
  408. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/nw_service.py +0 -0
  409. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/nw_service_groups.py +0 -0
  410. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/provisioning_url.py +0 -0
  411. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/ztw/ztw_service.py +0 -0
  412. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/audit_logs.py +0 -0
  413. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/dlp_incidents.py +0 -0
  414. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/legacy.py +0 -0
  415. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/audit_logs.py +0 -0
  416. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/change_history.py +0 -0
  417. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/common.py +0 -0
  418. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/generated_tickets.py +0 -0
  419. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/incident_details.py +0 -0
  420. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/incident_evidence.py +0 -0
  421. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/incident_group_search.py +0 -0
  422. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/incident_search.py +0 -0
  423. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/zscaler/zwa/models/incident_trigger.py +0 -0
  424. {zscaler_sdk_python-1.6.0 → zscaler_sdk_python-1.7.1}/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.6.0
3
+ Version: 1.7.1
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 => 0.20.x, OneAPI is available for programmatic interaction with the following products:
241
+ As of the publication of SDK version => 1.7.x, OneAPI is available for programmatic interaction with the following products:
240
242
 
241
- * [ZIA API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=managed%20using%20OneAPI.-,ZIA%20API,-Zscaler%20Internet%20Access)
242
- * [ZPA API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=Workload%20Groups-,ZPA%20API,-Zscaler%20Private%20Access)
243
- * [Zscaler Client Connector API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=Version%20Profiles-,Zscaler%20Client%20Connector%20API,-Zscaler%20Client%20Connector)
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,225 @@ 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
+ #### Zidentity Pagination
818
+
819
+ Zidentity API supports pagination with a maximum page size of 100 records per request. The SDK automatically handles pagination for Zidentity endpoints.
820
+
821
+ **Key Features:**
822
+ - **Maximum Page Size**: 100 records per page (enforced by API)
823
+ - **Automatic Pagination**: SDK handles pagination transparently
824
+ - **Response Format**: Returns data in `records` field with pagination metadata
825
+
826
+ **Example Usage:**
827
+
828
+ ```py
829
+ from zscaler import ZscalerClient
830
+
831
+ config = {
832
+ "clientId": '{yourClientId}',
833
+ "clientSecret": '{yourClientSecret}',
834
+ "vanityDomain": '{yourvanityDomain}',
835
+ "cloud": "beta",
836
+ }
837
+
838
+ def main():
839
+ with ZscalerClient(config) as client:
840
+ # Request 300 groups (will automatically fetch 3 pages)
841
+ groups_response, response, error = client.zidentity.groups.list_groups(
842
+ query_params={'page_size': 300}
843
+ )
844
+
845
+ if error:
846
+ print(f"Error listing groups: {error}")
847
+ return
848
+
849
+ print(f"Total groups in response: {len(groups_response.records)}")
850
+ print(f"Total available: {groups_response.results_total}")
851
+ print(f"Page offset: {groups_response.page_offset}")
852
+ print(f"Page size: {groups_response.page_size}")
853
+
854
+ # Access individual groups
855
+ for group in groups_response.records:
856
+ print(f"Group: {group.name} (ID: {group.id})")
857
+
858
+ # Manual pagination using response object
859
+ while response.has_next():
860
+ next_results, error = response.next()
861
+ if error:
862
+ print(f"Error fetching next page: {error}")
863
+ break
864
+
865
+ print(f"Next page: {len(next_results)} groups")
866
+ for group in next_results:
867
+ print(f"Group: {group['name']} (ID: {group['id']})")
868
+
869
+ if __name__ == "__main__":
870
+ main()
871
+ ```
872
+
873
+ **Pagination Metadata:**
874
+ - `results_total`: Total number of records available
875
+ - `page_offset`: Current page offset
876
+ - `page_size`: Number of records per page (max 100)
877
+ - `next_link`: URL for next page (if available)
878
+ - `prev_link`: URL for previous page (if available)
879
+
880
+ | Argument | Description | Environment variable |
881
+ |--------------|-------------|-------------------|
882
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
883
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
884
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
885
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
886
+ | `cloud`
887
+
888
+ ### Initialize OneAPI OAuth 2.0 Client
889
+
890
+ #### Zidentity OneAPI Client ID and Client Secret Authentication
891
+
892
+ Construct a client instance by passing your Zidentity `clientId`, `clientSecret` and `vanityDomain`:
893
+
894
+ ```py
895
+ from zscaler import ZscalerClient
896
+
897
+ config = {
898
+ "clientId": '{yourClientId}',
899
+ "clientSecret": '{yourClientSecret}',
900
+ "vanityDomain": '{yourvanityDomain}',
901
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
902
+ "logging": {"enabled": False, "verbose": False},
903
+ }
904
+
905
+ def main():
906
+ with ZscalerClient(config) as client:
907
+ users, _, error = client.zidentity.groups.list_groups()
908
+ if error:
909
+ print(f"Error listing users: {error}")
910
+ return
911
+
912
+ print(f"Total users found: {len(users)}")
913
+
914
+ if __name__ == "__main__":
915
+ main()
916
+ ```
917
+
918
+ #### Zidentity OneAPI Client ID and Private Key Authentication
919
+
920
+ ```py
921
+ from zscaler import ZscalerClient
922
+
923
+ config = {
924
+ "clientId": '{yourClientId}',
925
+ "privateKey": '{yourPrivateKey}',
926
+ "vanityDomain": '{yourvanityDomain}',
927
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
928
+ "logging": {"enabled": False, "verbose": False},
929
+ }
930
+
931
+ def main():
932
+ with ZscalerClient(config) as client:
933
+ users, _, error = client.zidentity.groups.list_groups()
934
+ if error:
935
+ print(f"Error listing users: {error}")
936
+ return
937
+
938
+ print(f"Total users found: {len(users)}")
939
+
940
+ if __name__ == "__main__":
941
+ main()
942
+ ```
943
+
944
+ ### Zscaler Sandbox Authentication
945
+
946
+ To authenticate to the Zscaler Sandbox service you must authenticate by instantiating the `ZscalerClient`.
947
+
948
+ Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`. The following cloud environments are supported:
949
+
950
+ * `zscaler`
951
+ * `zscalerone`
952
+ * `zscalertwo`
953
+ * `zscalerthree`
954
+ * `zscloud`
955
+ * `zscalerbeta`
956
+ * `zscalergov`
957
+ * `zscalerten`
958
+ * `zspreview`
959
+
960
+ ### Environment variables
961
+
962
+ You can provide credentials via the `ZSCALER_SANDBOX_TOKEN`, `ZSCALER_SANDBOX_CLOUD` environment variables, representing your Zscaler Sandbox authentication paraemters respectively `sandboxToken`, `sandboxCloud`
963
+
964
+ | Argument | Description | Environment variable |
965
+ |--------------|-------------|-------------------|
966
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
967
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
968
+
969
+ ### Zscaler Sandbox Client Initialization
970
+
971
+ ```py
972
+ from zscaler import ZscalerClient
973
+
974
+ config = {
975
+ "sandboxToken": '{yourSandboxToken}',
976
+ "sandboxCloud": '{yourSandboxCloud}',
977
+ "logging": {"enabled": False, "verbose": False},
978
+ }
979
+
980
+ def main():
981
+
982
+ script_dir = os.path.dirname(os.path.abspath(__file__))
983
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
984
+ force_analysis = True
985
+
986
+ with ZscalerClient(config) as client:
987
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
988
+
989
+ if err:
990
+ print(f"Error submitting file: {err}")
991
+ else:
992
+ print("File submitted successfully!")
993
+ print(f"Response: {submit}")
994
+
995
+ if __name__ == "__main__":
996
+ main()
997
+ ```
998
+
999
+ ### ZIA Legacy Client Initialization
1000
+
1001
+ ```py
1002
+ import random
1003
+ from zscaler import ZscalerClient
1004
+
1005
+ config = {
1006
+ "sandboxToken": '{yourSandboxToken}',
1007
+ "sandboxCloud": '{yourSandboxCloud}',
1008
+ "logging": {"enabled": False, "verbose": False},
1009
+ }
1010
+
1011
+ def main():
1012
+
1013
+ script_dir = os.path.dirname(os.path.abspath(__file__))
1014
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
1015
+ force_analysis = True
1016
+
1017
+ with ZscalerClient(config) as client:
1018
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
1019
+
1020
+ if err:
1021
+ print(f"Error submitting file: {err}")
1022
+ else:
1023
+ print("File submitted successfully!")
1024
+ print(f"Response: {submit}")
1025
+
1026
+ if __name__ == "__main__":
1027
+ main()
1028
+ ```
1029
+
806
1030
  ## Zscaler Legacy API Framework
807
1031
 
808
1032
  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.
@@ -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 => 0.20.x, OneAPI is available for programmatic interaction with the following products:
202
+ As of the publication of SDK version => 1.7.x, OneAPI is available for programmatic interaction with the following products:
201
203
 
202
- * [ZIA API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=managed%20using%20OneAPI.-,ZIA%20API,-Zscaler%20Internet%20Access)
203
- * [ZPA API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=Workload%20Groups-,ZPA%20API,-Zscaler%20Private%20Access)
204
- * [Zscaler Client Connector API](https://help.zscaler.com/oneapi/understanding-oneapi#:~:text=Version%20Profiles-,Zscaler%20Client%20Connector%20API,-Zscaler%20Client%20Connector)
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,225 @@ 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
+ #### Zidentity Pagination
779
+
780
+ Zidentity API supports pagination with a maximum page size of 100 records per request. The SDK automatically handles pagination for Zidentity endpoints.
781
+
782
+ **Key Features:**
783
+ - **Maximum Page Size**: 100 records per page (enforced by API)
784
+ - **Automatic Pagination**: SDK handles pagination transparently
785
+ - **Response Format**: Returns data in `records` field with pagination metadata
786
+
787
+ **Example Usage:**
788
+
789
+ ```py
790
+ from zscaler import ZscalerClient
791
+
792
+ config = {
793
+ "clientId": '{yourClientId}',
794
+ "clientSecret": '{yourClientSecret}',
795
+ "vanityDomain": '{yourvanityDomain}',
796
+ "cloud": "beta",
797
+ }
798
+
799
+ def main():
800
+ with ZscalerClient(config) as client:
801
+ # Request 300 groups (will automatically fetch 3 pages)
802
+ groups_response, response, error = client.zidentity.groups.list_groups(
803
+ query_params={'page_size': 300}
804
+ )
805
+
806
+ if error:
807
+ print(f"Error listing groups: {error}")
808
+ return
809
+
810
+ print(f"Total groups in response: {len(groups_response.records)}")
811
+ print(f"Total available: {groups_response.results_total}")
812
+ print(f"Page offset: {groups_response.page_offset}")
813
+ print(f"Page size: {groups_response.page_size}")
814
+
815
+ # Access individual groups
816
+ for group in groups_response.records:
817
+ print(f"Group: {group.name} (ID: {group.id})")
818
+
819
+ # Manual pagination using response object
820
+ while response.has_next():
821
+ next_results, error = response.next()
822
+ if error:
823
+ print(f"Error fetching next page: {error}")
824
+ break
825
+
826
+ print(f"Next page: {len(next_results)} groups")
827
+ for group in next_results:
828
+ print(f"Group: {group['name']} (ID: {group['id']})")
829
+
830
+ if __name__ == "__main__":
831
+ main()
832
+ ```
833
+
834
+ **Pagination Metadata:**
835
+ - `results_total`: Total number of records available
836
+ - `page_offset`: Current page offset
837
+ - `page_size`: Number of records per page (max 100)
838
+ - `next_link`: URL for next page (if available)
839
+ - `prev_link`: URL for previous page (if available)
840
+
841
+ | Argument | Description | Environment variable |
842
+ |--------------|-------------|-------------------|
843
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
844
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
845
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
846
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
847
+ | `cloud`
848
+
849
+ ### Initialize OneAPI OAuth 2.0 Client
850
+
851
+ #### Zidentity OneAPI Client ID and Client Secret Authentication
852
+
853
+ Construct a client instance by passing your Zidentity `clientId`, `clientSecret` and `vanityDomain`:
854
+
855
+ ```py
856
+ from zscaler import ZscalerClient
857
+
858
+ config = {
859
+ "clientId": '{yourClientId}',
860
+ "clientSecret": '{yourClientSecret}',
861
+ "vanityDomain": '{yourvanityDomain}',
862
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
863
+ "logging": {"enabled": False, "verbose": False},
864
+ }
865
+
866
+ def main():
867
+ with ZscalerClient(config) as client:
868
+ users, _, error = client.zidentity.groups.list_groups()
869
+ if error:
870
+ print(f"Error listing users: {error}")
871
+ return
872
+
873
+ print(f"Total users found: {len(users)}")
874
+
875
+ if __name__ == "__main__":
876
+ main()
877
+ ```
878
+
879
+ #### Zidentity OneAPI Client ID and Private Key Authentication
880
+
881
+ ```py
882
+ from zscaler import ZscalerClient
883
+
884
+ config = {
885
+ "clientId": '{yourClientId}',
886
+ "privateKey": '{yourPrivateKey}',
887
+ "vanityDomain": '{yourvanityDomain}',
888
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
889
+ "logging": {"enabled": False, "verbose": False},
890
+ }
891
+
892
+ def main():
893
+ with ZscalerClient(config) as client:
894
+ users, _, error = client.zidentity.groups.list_groups()
895
+ if error:
896
+ print(f"Error listing users: {error}")
897
+ return
898
+
899
+ print(f"Total users found: {len(users)}")
900
+
901
+ if __name__ == "__main__":
902
+ main()
903
+ ```
904
+
905
+ ### Zscaler Sandbox Authentication
906
+
907
+ To authenticate to the Zscaler Sandbox service you must authenticate by instantiating the `ZscalerClient`.
908
+
909
+ Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`. The following cloud environments are supported:
910
+
911
+ * `zscaler`
912
+ * `zscalerone`
913
+ * `zscalertwo`
914
+ * `zscalerthree`
915
+ * `zscloud`
916
+ * `zscalerbeta`
917
+ * `zscalergov`
918
+ * `zscalerten`
919
+ * `zspreview`
920
+
921
+ ### Environment variables
922
+
923
+ You can provide credentials via the `ZSCALER_SANDBOX_TOKEN`, `ZSCALER_SANDBOX_CLOUD` environment variables, representing your Zscaler Sandbox authentication paraemters respectively `sandboxToken`, `sandboxCloud`
924
+
925
+ | Argument | Description | Environment variable |
926
+ |--------------|-------------|-------------------|
927
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
928
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
929
+
930
+ ### Zscaler Sandbox Client Initialization
931
+
932
+ ```py
933
+ from zscaler import ZscalerClient
934
+
935
+ config = {
936
+ "sandboxToken": '{yourSandboxToken}',
937
+ "sandboxCloud": '{yourSandboxCloud}',
938
+ "logging": {"enabled": False, "verbose": False},
939
+ }
940
+
941
+ def main():
942
+
943
+ script_dir = os.path.dirname(os.path.abspath(__file__))
944
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
945
+ force_analysis = True
946
+
947
+ with ZscalerClient(config) as client:
948
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
949
+
950
+ if err:
951
+ print(f"Error submitting file: {err}")
952
+ else:
953
+ print("File submitted successfully!")
954
+ print(f"Response: {submit}")
955
+
956
+ if __name__ == "__main__":
957
+ main()
958
+ ```
959
+
960
+ ### ZIA Legacy Client Initialization
961
+
962
+ ```py
963
+ import random
964
+ from zscaler import ZscalerClient
965
+
966
+ config = {
967
+ "sandboxToken": '{yourSandboxToken}',
968
+ "sandboxCloud": '{yourSandboxCloud}',
969
+ "logging": {"enabled": False, "verbose": False},
970
+ }
971
+
972
+ def main():
973
+
974
+ script_dir = os.path.dirname(os.path.abspath(__file__))
975
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
976
+ force_analysis = True
977
+
978
+ with ZscalerClient(config) as client:
979
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
980
+
981
+ if err:
982
+ print(f"Error submitting file: {err}")
983
+ else:
984
+ print("File submitted successfully!")
985
+ print(f"Response: {submit}")
986
+
987
+ if __name__ == "__main__":
988
+ main()
989
+ ```
990
+
767
991
  ## Zscaler Legacy API Framework
768
992
 
769
993
  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.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "1.6.0"
3
+ version = "1.7.1"
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",
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "1.6.0"
32
+ __version__ = "1.7.1"
33
33
 
34
34
 
35
35
  from zscaler.oneapi_client import Client as ZscalerClient # noqa
@@ -7,7 +7,7 @@ from zscaler.exceptions import exceptions
7
7
 
8
8
  logger = logging.getLogger(__name__)
9
9
 
10
- @staticmethod
10
+ # @staticmethod
11
11
  def check_response_for_error(url, response_details, response_body):
12
12
  """
13
13
  Checks HTTP response for errors in the response body.
@@ -125,7 +125,10 @@ def to_snake_case(string):
125
125
  "locationGroupDTO": "location_group_dto",
126
126
  "locationDTO": "location_dto",
127
127
  "predefinedADPControls": "predefined_adp_controls",
128
- "runtimeOS": "runtime_os"
128
+ "runtimeOS": "runtime_os",
129
+
130
+ # ZIdentity Edge Cases
131
+ # "clientJWKsUrl": "clientJWKsUrl",
129
132
  }
130
133
 
131
134
  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.
@@ -72,11 +72,11 @@ class ZscalerAPIResponse:
72
72
  self._params["pagesize"] = self.SERVICE_PAGE_LIMITS["ZPA"]["max"]
73
73
 
74
74
  # If service is ZIA, ensure the pagination parameter is "pageSize" in camelCase
75
- if self._service_type.upper() == "ZIA":
75
+ if self._service_type == "zia":
76
76
  if "page_size" in self._params:
77
77
  self._params["pageSize"] = self._params.pop("page_size")
78
78
 
79
- if self._service_type.upper() == "ZIA":
79
+ if self._service_type == "zia":
80
80
  # If user supplied pageNumber, initialize self._page accordingly
81
81
  if "pageNumber" in self._params:
82
82
  try:
@@ -160,6 +160,14 @@ class ZscalerAPIResponse:
160
160
  elif self._service_type == "ZDX":
161
161
  self._list = self._body.get("items", [])
162
162
  self._next_offset = self._body.get("next_offset")
163
+ elif self._service_type == "zidentity":
164
+ # Zidentity uses "records" field for paginated responses
165
+ self._list = self._body.get("records", [])
166
+ self._next_link = self._body.get("next_link")
167
+ self._prev_link = self._body.get("prev_link")
168
+ self._results_total = self._body.get("results_total")
169
+ self._page_offset = self._body.get("pageOffset")
170
+ self._page_size = self._body.get("pageSize")
163
171
  else:
164
172
  # ZPA and possibly other services use a dict with "list" field
165
173
  self._list = self._body.get("list", [])
@@ -267,6 +275,20 @@ class ZscalerAPIResponse:
267
275
  # Ensure page parameter is never set for ZIA
268
276
  self._params.pop("page", None)
269
277
  logger.debug(f"[DEBUG] _fetch_next_page params for ZIA: {self._params}")
278
+ elif self._service_type == "zidentity":
279
+ logger.debug("[DEBUG] Taking ZIDENTITY pagination branch.")
280
+ # For Zidentity, use the next_link URL directly
281
+ if self._next_link:
282
+ # Parse the next_link URL to extract parameters
283
+ from urllib.parse import urlparse, parse_qs
284
+ parsed_url = urlparse(self._next_link)
285
+ query_params = parse_qs(parsed_url.query)
286
+ # Update params with the next page parameters
287
+ for key, value in query_params.items():
288
+ self._params[key] = value[0] if len(value) == 1 else value
289
+ # Update the URL to the base URL (remove the full next_link)
290
+ self._url = f"{parsed_url.scheme}://{parsed_url.netloc}{parsed_url.path}"
291
+ logger.debug(f"[DEBUG] _fetch_next_page params for ZIDENTITY: {self._params}")
270
292
  else:
271
293
  logger.debug("[DEBUG] Taking ZPA/other pagination branch.")
272
294
  self._page += 1
@@ -302,6 +324,11 @@ class ZscalerAPIResponse:
302
324
  has_next = self._next_offset is not None
303
325
  logger.debug("Has next page for ZDX: %s", has_next)
304
326
  return has_next
327
+ elif self._service_type == "zidentity":
328
+ # More pages if next_link is not None
329
+ has_next = self._next_link is not None
330
+ logger.debug("Has next page for ZIDENTITY: %s", has_next)
331
+ return has_next
305
332
  else:
306
333
  # For ZIA/ZCC, if we got results last time, assume we can try next page
307
334
  # If next page returns empty, has_next() will be False on next call.