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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/PKG-INFO +2 -2
  2. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/README.md +1 -1
  3. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/pyproject.toml +1 -1
  4. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/__init__.py +1 -1
  5. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/helpers.py +4 -2
  6. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_http_client.py +3 -3
  7. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/request_executor.py +3 -1
  8. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/devices.py +2 -0
  9. zscaler_sdk_python-1.6.0/zscaler/zpa/admin_sso_controller.py +130 -0
  10. zscaler_sdk_python-1.6.0/zscaler/zpa/api_keys.py +307 -0
  11. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_connector_groups.py +0 -2
  12. zscaler_sdk_python-1.6.0/zscaler/zpa/c2c_ip_ranges.py +404 -0
  13. zscaler_sdk_python-1.6.0/zscaler/zpa/config_override_controller.py +215 -0
  14. zscaler_sdk_python-1.6.0/zscaler/zpa/customer_domain.py +164 -0
  15. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/legacy.py +104 -0
  16. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/microtenants.py +3 -3
  17. zscaler_sdk_python-1.6.0/zscaler/zpa/models/api_keys.py +120 -0
  18. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/app_connector_groups.py +0 -1
  19. zscaler_sdk_python-1.6.0/zscaler/zpa/models/c2c_ip_ranges.py +129 -0
  20. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/common.py +156 -1
  21. zscaler_sdk_python-1.6.0/zscaler/zpa/models/config_override_controller.py +101 -0
  22. zscaler_sdk_python-1.6.0/zscaler/zpa/models/customer_domain.py +81 -0
  23. zscaler_sdk_python-1.6.0/zscaler/zpa/models/microtenants.py +82 -0
  24. zscaler_sdk_python-1.6.0/zscaler/zpa/models/npn_client_controller.py +87 -0
  25. zscaler_sdk_python-1.6.0/zscaler/zpa/models/private_cloud_controller.py +571 -0
  26. zscaler_sdk_python-1.6.0/zscaler/zpa/models/private_cloud_group.py +241 -0
  27. zscaler_sdk_python-1.6.0/zscaler/zpa/models/user_portal_controller.py +127 -0
  28. zscaler_sdk_python-1.6.0/zscaler/zpa/models/user_portal_link.py +151 -0
  29. zscaler_sdk_python-1.6.0/zscaler/zpa/npn_client_controller.py +88 -0
  30. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/pra_console.py +1 -1
  31. zscaler_sdk_python-1.6.0/zscaler/zpa/private_cloud_controller.py +283 -0
  32. zscaler_sdk_python-1.6.0/zscaler/zpa/private_cloud_group.py +429 -0
  33. zscaler_sdk_python-1.6.0/zscaler/zpa/user_portal_controller.py +309 -0
  34. zscaler_sdk_python-1.6.0/zscaler/zpa/user_portal_link.py +469 -0
  35. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/zpa_service.py +100 -0
  36. zscaler_sdk_python-1.5.9/zscaler/zpa/models/microtenants.py +0 -235
  37. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/LICENSE.md +0 -0
  38. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/api_client.py +0 -0
  39. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/cache/__init__.py +0 -0
  40. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/cache/cache.py +0 -0
  41. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/cache/no_op_cache.py +0 -0
  42. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/cache/zscaler_cache.py +0 -0
  43. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/config/__init__.py +0 -0
  44. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/config/config_setter.py +0 -0
  45. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/config/config_validator.py +0 -0
  46. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/constants.py +0 -0
  47. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/error_messages.py +0 -0
  48. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/errors/__init__.py +0 -0
  49. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/errors/error.py +0 -0
  50. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/errors/http_error.py +0 -0
  51. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/errors/response_checker.py +0 -0
  52. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/errors/zscaler_api_error.py +0 -0
  53. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/exceptions/__init__.py +0 -0
  54. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/exceptions/exceptions.py +0 -0
  55. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/logger.py +0 -0
  56. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_client.py +0 -0
  57. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_collection.py +0 -0
  58. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_oauth_client.py +0 -0
  59. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_object.py +0 -0
  60. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/oneapi_response.py +0 -0
  61. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ratelimiter/__init__.py +0 -0
  62. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ratelimiter/ratelimiter.py +0 -0
  63. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/user_agent.py +0 -0
  64. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/utils.py +0 -0
  65. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/__init__.py +0 -0
  66. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/admin_user.py +0 -0
  67. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/company.py +0 -0
  68. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/entitlements.py +0 -0
  69. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/fail_open_policy.py +0 -0
  70. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/forwarding_profile.py +0 -0
  71. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/legacy.py +0 -0
  72. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/admin_roles.py +0 -0
  73. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/admin_user.py +0 -0
  74. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/devices.py +0 -0
  75. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/failopenpolicy.py +0 -0
  76. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/forwardingprofile.py +0 -0
  77. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/getcompanyinfo.py +0 -0
  78. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/manage_pass.py +0 -0
  79. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/secrets_otp.py +0 -0
  80. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/secrets_passwords.py +0 -0
  81. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/trustednetworks.py +0 -0
  82. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/webappservice.py +0 -0
  83. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/webpolicy.py +0 -0
  84. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/webprivacy.py +0 -0
  85. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  86. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  87. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/secrets.py +0 -0
  88. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/trusted_networks.py +0 -0
  89. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/web_app_service.py +0 -0
  90. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/web_policy.py +0 -0
  91. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/web_privacy.py +0 -0
  92. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zcc/zcc_service.py +0 -0
  93. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/__init__.py +0 -0
  94. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/admin.py +0 -0
  95. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/alerts.py +0 -0
  96. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/apps.py +0 -0
  97. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/devices.py +0 -0
  98. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/inventory.py +0 -0
  99. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/legacy.py +0 -0
  100. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/activeapplications.py +0 -0
  101. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/administration.py +0 -0
  102. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/alerts.py +0 -0
  103. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/application_users.py +0 -0
  104. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/applications.py +0 -0
  105. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/call_quality_metrics.py +0 -0
  106. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/common.py +0 -0
  107. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/devices.py +0 -0
  108. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/software_inventory.py +0 -0
  109. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/troubleshooting.py +0 -0
  110. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/models/users.py +0 -0
  111. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/troubleshooting.py +0 -0
  112. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/users.py +0 -0
  113. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zdx/zdx_service.py +0 -0
  114. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/__init__.py +0 -0
  115. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/activate.py +0 -0
  116. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/admin_roles.py +0 -0
  117. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/admin_users.py +0 -0
  118. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/advanced_settings.py +0 -0
  119. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/alert_subscriptions.py +0 -0
  120. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/apptotal.py +0 -0
  121. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/atp_policy.py +0 -0
  122. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/audit_logs.py +0 -0
  123. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/authentication_settings.py +0 -0
  124. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/bandwidth_classes.py +0 -0
  125. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/bandwidth_control_rules.py +0 -0
  126. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/browser_control_settings.py +0 -0
  127. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/casb_dlp_rules.py +0 -0
  128. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/casb_malware_rules.py +0 -0
  129. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_app_instances.py +0 -0
  130. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_applications.py +0 -0
  131. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_browser_isolation.py +0 -0
  132. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_firewall.py +0 -0
  133. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_firewall_dns.py +0 -0
  134. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_firewall_ips.py +0 -0
  135. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_firewall_rules.py +0 -0
  136. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloud_nss.py +0 -0
  137. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/cloudappcontrol.py +0 -0
  138. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dedicated_ip_gateways.py +0 -0
  139. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/device_management.py +0 -0
  140. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dlp_dictionary.py +0 -0
  141. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dlp_engine.py +0 -0
  142. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dlp_resources.py +0 -0
  143. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dlp_templates.py +0 -0
  144. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dlp_web_rules.py +0 -0
  145. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/dns_gatways.py +0 -0
  146. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/end_user_notification.py +0 -0
  147. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/file_type_control_rule.py +0 -0
  148. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/forwarding_control.py +0 -0
  149. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/ftp_control_policy.py +0 -0
  150. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/gre_tunnel.py +0 -0
  151. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/intermediate_certificates.py +0 -0
  152. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/iot_report.py +0 -0
  153. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/ipv6_config.py +0 -0
  154. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/legacy.py +0 -0
  155. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/locations.py +0 -0
  156. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/malware_protection_policy.py +0 -0
  157. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/mobile_threat_settings.py +0 -0
  158. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/__init__.py +0 -0
  159. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/activation.py +0 -0
  160. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/admin_roles.py +0 -0
  161. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/admin_users.py +0 -0
  162. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/advanced_settings.py +0 -0
  163. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  164. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/alert_subscriptions.py +0 -0
  165. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/apptotal.py +0 -0
  166. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/authentication_settings.py +0 -0
  167. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/bandwidth_classes.py +0 -0
  168. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
  169. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/browser_control_settings.py +0 -0
  170. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/casb_dlp_rules.py +0 -0
  171. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/casb_malware_rules.py +0 -0
  172. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_app_instances.py +0 -0
  173. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_app_policy.py +0 -0
  174. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
  175. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
  176. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
  177. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
  178. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
  179. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
  180. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
  181. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
  182. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
  183. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
  184. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
  185. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
  186. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloud_nss.py +0 -0
  187. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/cloudappcontrol.py +0 -0
  188. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/common.py +0 -0
  189. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
  190. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/device_groups.py +0 -0
  191. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/devices.py +0 -0
  192. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dlp_dictionary.py +0 -0
  193. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dlp_engine.py +0 -0
  194. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dlp_resources.py +0 -0
  195. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dlp_templates.py +0 -0
  196. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dlp_web_rules.py +0 -0
  197. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/dns_gateways.py +0 -0
  198. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/endusernotification.py +0 -0
  199. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/filetyperules.py +0 -0
  200. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/forwarding_control_policy.py +0 -0
  201. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/ftp_control_policy.py +0 -0
  202. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/gre_recommended_list.py +0 -0
  203. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/gre_tunnel_info.py +0 -0
  204. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/gre_tunnels.py +0 -0
  205. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/gre_vips.py +0 -0
  206. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/intermediate_certificates.py +0 -0
  207. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/iotreport.py +0 -0
  208. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/ipv6_config.py +0 -0
  209. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/location_group.py +0 -0
  210. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/location_management.py +0 -0
  211. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/malware_protection_settings.py +0 -0
  212. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/mobile_threat_settings.py +0 -0
  213. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/nat_control_policy.py +0 -0
  214. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/nss_servers.py +0 -0
  215. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/organization_information.py +0 -0
  216. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/pac_files.py +0 -0
  217. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/proxies.py +0 -0
  218. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/proxy_gateways.py +0 -0
  219. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/remoteassistance.py +0 -0
  220. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/risk_profiles.py +0 -0
  221. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/rule_labels.py +0 -0
  222. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/saas_security_api.py +0 -0
  223. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/sandboxrules.py +0 -0
  224. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/security_policy_settings.py +0 -0
  225. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/shadow_it_report.py +0 -0
  226. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
  227. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/subclouds.py +0 -0
  228. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/system_audit.py +0 -0
  229. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
  230. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/time_intervals.py +0 -0
  231. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/traffic_datacenters.py +0 -0
  232. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
  233. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/traffic_extranet.py +0 -0
  234. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/traffic_static_ip.py +0 -0
  235. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
  236. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  237. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/url_filtering_rules.py +0 -0
  238. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/urlcategory.py +0 -0
  239. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/user_management.py +0 -0
  240. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/vzen_clusters.py +0 -0
  241. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/workload_groups.py +0 -0
  242. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/models/zpa_gateway.py +0 -0
  243. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/nat_control_policy.py +0 -0
  244. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/nss_servers.py +0 -0
  245. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/organization_information.py +0 -0
  246. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/pac_files.py +0 -0
  247. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/policy_export.py +0 -0
  248. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/proxies.py +0 -0
  249. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/remote_assistance.py +0 -0
  250. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/risk_profiles.py +0 -0
  251. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/rule_labels.py +0 -0
  252. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/saas_security_api.py +0 -0
  253. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/sandbox.py +0 -0
  254. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/sandbox_rules.py +0 -0
  255. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/security_policy_settings.py +0 -0
  256. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/shadow_it_report.py +0 -0
  257. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/ssl_inspection_rules.py +0 -0
  258. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/sub_clouds.py +0 -0
  259. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/system_audit.py +0 -0
  260. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/tenancy_restriction_profile.py +0 -0
  261. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/time_intervals.py +0 -0
  262. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/traffic_datacenters.py +0 -0
  263. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/traffic_extranet.py +0 -0
  264. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/traffic_static_ip.py +0 -0
  265. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/traffic_vpn_credentials.py +0 -0
  266. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/url_categories.py +0 -0
  267. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/url_filtering.py +0 -0
  268. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/user_management.py +0 -0
  269. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/vzen_clusters.py +0 -0
  270. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/workload_groups.py +0 -0
  271. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/zia_service.py +0 -0
  272. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zia/zpa_gateway.py +0 -0
  273. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/__init__.py +0 -0
  274. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/administrator_controller.py +0 -0
  275. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_connector_schedule.py +0 -0
  276. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_connectors.py +0 -0
  277. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_protection.py +0 -0
  278. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_segment_by_type.py +0 -0
  279. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_segments_ba.py +0 -0
  280. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_segments_ba_v2.py +0 -0
  281. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_segments_inspection.py +0 -0
  282. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/app_segments_pra.py +0 -0
  283. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/application_segment.py +0 -0
  284. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cbi_banner.py +0 -0
  285. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cbi_certificate.py +0 -0
  286. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cbi_profile.py +0 -0
  287. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cbi_region.py +0 -0
  288. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cbi_zpa_profile.py +0 -0
  289. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/certificates.py +0 -0
  290. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/client_settings.py +0 -0
  291. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/cloud_connector_groups.py +0 -0
  292. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/customer_controller.py +0 -0
  293. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/customer_version_profile.py +0 -0
  294. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/emergency_access.py +0 -0
  295. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/enrollment_certificates.py +0 -0
  296. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/idp.py +0 -0
  297. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/lss.py +0 -0
  298. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/machine_groups.py +0 -0
  299. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/administrator_controller.py +0 -0
  300. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/app_connector_schedule.py +0 -0
  301. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/app_connectors.py +0 -0
  302. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
  303. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/app_protection_profile.py +0 -0
  304. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/application_segment.py +0 -0
  305. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/application_segment_lb.py +0 -0
  306. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/application_servers.py +0 -0
  307. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cbi_banner.py +0 -0
  308. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cbi_certificate.py +0 -0
  309. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cbi_profile.py +0 -0
  310. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cbi_region.py +0 -0
  311. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
  312. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/certificates.py +0 -0
  313. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/client_settings.py +0 -0
  314. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
  315. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/customer_controller.py +0 -0
  316. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/customer_version_profile.py +0 -0
  317. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/emergency_access.py +0 -0
  318. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/enrollment_certificates.py +0 -0
  319. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/idp.py +0 -0
  320. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/lss.py +0 -0
  321. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/machine_groups.py +0 -0
  322. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
  323. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
  324. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/posture_profiles.py +0 -0
  325. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/pra_approval.py +0 -0
  326. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/pra_console.py +0 -0
  327. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
  328. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/pra_credential.py +0 -0
  329. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/pra_portal.py +0 -0
  330. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/provisioning_keys.py +0 -0
  331. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/role_controller.py +0 -0
  332. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/saml_attributes.py +0 -0
  333. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/scim_attributes.py +0 -0
  334. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/scim_groups.py +0 -0
  335. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/segment_group.py +0 -0
  336. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/server_group.py +0 -0
  337. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/service_edge_groups.py +0 -0
  338. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/service_edge_schedule.py +0 -0
  339. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/service_edges.py +0 -0
  340. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/models/trusted_network.py +0 -0
  341. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/policies.py +0 -0
  342. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/posture_profiles.py +0 -0
  343. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/pra_approval.py +0 -0
  344. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/pra_credential.py +0 -0
  345. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/pra_credential_pool.py +0 -0
  346. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/pra_portal.py +0 -0
  347. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/provisioning.py +0 -0
  348. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/role_controller.py +0 -0
  349. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/saml_attributes.py +0 -0
  350. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/scim_attributes.py +0 -0
  351. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/scim_groups.py +0 -0
  352. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/segment_groups.py +0 -0
  353. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/server_groups.py +0 -0
  354. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/servers.py +0 -0
  355. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/service_edge_group.py +0 -0
  356. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/service_edge_schedule.py +0 -0
  357. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/service_edges.py +0 -0
  358. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zpa/trusted_networks.py +0 -0
  359. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/__init__.py +0 -0
  360. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/account_details.py +0 -0
  361. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/activation.py +0 -0
  362. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/admin_roles.py +0 -0
  363. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/admin_users.py +0 -0
  364. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/api_keys.py +0 -0
  365. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/ec_groups.py +0 -0
  366. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/forwarding_gateways.py +0 -0
  367. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/forwarding_rules.py +0 -0
  368. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/ip_destination_groups.py +0 -0
  369. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/ip_groups.py +0 -0
  370. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/ip_source_groups.py +0 -0
  371. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/legacy.py +0 -0
  372. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/location_management.py +0 -0
  373. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/location_template.py +0 -0
  374. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/activation.py +0 -0
  375. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/admin_roles.py +0 -0
  376. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/admin_users.py +0 -0
  377. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/api_keys.py +0 -0
  378. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/common.py +0 -0
  379. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/ec_group_vm.py +0 -0
  380. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/ecgroup.py +0 -0
  381. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/forwarding_gateways.py +0 -0
  382. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/forwarding_rules.py +0 -0
  383. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/ip_destination_groups.py +0 -0
  384. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/ip_groups.py +0 -0
  385. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/ip_source_groups.py +0 -0
  386. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/location_management.py +0 -0
  387. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/location_templates.py +0 -0
  388. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/nw_service.py +0 -0
  389. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/nw_service_groups.py +0 -0
  390. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/provisioning_url.py +0 -0
  391. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
  392. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/models/zpa_resources.py +0 -0
  393. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/nw_service.py +0 -0
  394. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/nw_service_groups.py +0 -0
  395. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/provisioning_url.py +0 -0
  396. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/ztw/ztw_service.py +0 -0
  397. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/__init__.py +0 -0
  398. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/audit_logs.py +0 -0
  399. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/dlp_incidents.py +0 -0
  400. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/legacy.py +0 -0
  401. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/audit_logs.py +0 -0
  402. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/change_history.py +0 -0
  403. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/common.py +0 -0
  404. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/generated_tickets.py +0 -0
  405. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/incident_details.py +0 -0
  406. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/incident_evidence.py +0 -0
  407. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/incident_group_search.py +0 -0
  408. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/incident_search.py +0 -0
  409. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/models/incident_trigger.py +0 -0
  410. {zscaler_sdk_python-1.5.9 → zscaler_sdk_python-1.6.0}/zscaler/zwa/zwa_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zscaler-sdk-python
3
- Version: 1.5.9
3
+ Version: 1.6.0
4
4
  Summary: Official Python SDK for the Zscaler Products
5
5
  Home-page: https://github.com/zscaler/zscaler-sdk-python
6
6
  License: MIT
@@ -1077,7 +1077,7 @@ The ZCC Cloud is identified by several cloud name prefixes, which determines whi
1077
1077
 
1078
1078
  ### Environment variables
1079
1079
 
1080
- You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_ID`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
1080
+ You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_SECRET`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
1081
1081
 
1082
1082
  ~> **NOTE** `ZCC_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
1083
1083
 
@@ -1038,7 +1038,7 @@ The ZCC Cloud is identified by several cloud name prefixes, which determines whi
1038
1038
 
1039
1039
  ### Environment variables
1040
1040
 
1041
- You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_ID`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
1041
+ You can provide credentials via the `ZCC_CLIENT_ID`, `ZCC_CLIENT_SECRET`, `ZCC_CLOUD` environment variables, representing your ZIA `api_key`, `secret_key`, and `cloud` respectively.
1042
1042
 
1043
1043
  ~> **NOTE** `ZCC_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
1044
1044
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "1.5.9"
3
+ version = "1.6.0"
4
4
  description = "Official Python SDK for the Zscaler Products"
5
5
  authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
6
6
  license = "MIT"
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "1.5.9"
32
+ __version__ = "1.6.0"
33
33
 
34
34
 
35
35
  from zscaler.oneapi_client import Client as ZscalerClient # noqa
@@ -124,7 +124,8 @@ def to_snake_case(string):
124
124
  "extranetDTO": "extranet_dto",
125
125
  "locationGroupDTO": "location_group_dto",
126
126
  "locationDTO": "location_dto",
127
- "predefinedADPControls": "predefined_adp_controls"
127
+ "predefinedADPControls": "predefined_adp_controls",
128
+ "runtimeOS": "runtime_os"
128
129
  }
129
130
 
130
131
  if string in FIELD_EXCEPTIONS:
@@ -256,7 +257,8 @@ def to_lower_camel_case(string):
256
257
  "extranet_dto": "extranetDTO",
257
258
  "location_group_dto": "locationGroupDTO",
258
259
  "location_dto": "locationDTO",
259
- "predefined_adp_controls": "predefinedADPControls"
260
+ "predefined_adp_controls": "predefinedADPControls",
261
+ "runtime_os": "runtimeOS"
260
262
  }
261
263
 
262
264
  if string in FIELD_EXCEPTIONS:
@@ -104,11 +104,11 @@ class HTTPClient:
104
104
  }
105
105
 
106
106
  # Handle payload
107
- if request.get("json"):
107
+ if "json" in request:
108
108
  params["json"] = request["json"]
109
- elif request.get("data"):
109
+ elif "data" in request:
110
110
  params["data"] = request["data"]
111
- elif request.get("form"):
111
+ elif "form" in request:
112
112
  params["data"] = request["form"]
113
113
  if request["params"]:
114
114
  params["params"] = request["params"]
@@ -188,7 +188,9 @@ class RequestExecutor:
188
188
  logger.error(f"Service detection failed: {e}")
189
189
  raise
190
190
 
191
- body = body or {}
191
+ # Preserve empty lists, only convert None to empty dict
192
+ if body is None:
193
+ body = {}
192
194
  headers = headers or {}
193
195
  params = params or {}
194
196
 
@@ -407,6 +407,8 @@ class DevicesAPI(APIClient):
407
407
  """
408
408
  )
409
409
 
410
+ query_params = query_params or {}
411
+
410
412
  body = {}
411
413
  headers = {}
412
414
 
@@ -0,0 +1,130 @@
1
+ """
2
+ Copyright (c) 2023, Zscaler Inc.
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any
5
+ purpose with or without fee is hereby granted, provided that the above
6
+ copyright notice and this permission notice appear in all copies.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+ """
16
+
17
+ from zscaler.api_client import APIClient
18
+ from zscaler.request_executor import RequestExecutor
19
+ from zscaler.utils import format_url
20
+
21
+
22
+ class AdminSSOControllerAPI(APIClient):
23
+ """
24
+ A Client object for the admin sso configuration controller resource.
25
+ """
26
+
27
+ def __init__(self, request_executor, config):
28
+ super().__init__()
29
+ self._request_executor: RequestExecutor = request_executor
30
+ customer_id = config["client"].get("customerId")
31
+ self._zpa_base_endpoint = f"/zpa/mgmtconfig/v1/admin/customers/{customer_id}/v2"
32
+
33
+ def get_sso_controller(self) -> tuple:
34
+ """
35
+ Fetches Admin SSO Login Details
36
+
37
+ Args:
38
+ N/A:
39
+
40
+ Returns:
41
+ :obj:`Tuple[dict, Response, Exception]`:
42
+ A tuple containing:
43
+ - A dictionary with the SSO setting (e.g., `{"ssologinonly": True}`) if the request succeeds,
44
+ - The raw `Response` object,
45
+ - Or an `Exception` if an error occurred.
46
+
47
+ Examples:
48
+ >>> fetched, _, err = client.zpa.admin_sso_controller.get_sso_controller()
49
+ >>> if err:
50
+ ... print(f"Error fetching updated SSO setting: {err}")
51
+ ... return
52
+ ... print(f"Current SSO login-only setting: {fetched['ssologinonly']}")
53
+ """
54
+ http_method = "get".upper()
55
+ api_url = format_url(
56
+ f"""{
57
+ self._zpa_base_endpoint}
58
+ /ssoLoginOptions
59
+ """
60
+ )
61
+
62
+ request, error = self._request_executor.create_request(http_method, api_url)
63
+ if error:
64
+ return (None, None, error)
65
+
66
+ response, error = self._request_executor.execute(request)
67
+ if error:
68
+ return (None, response, error)
69
+
70
+ try:
71
+ result = response.get_body()
72
+ except Exception as error:
73
+ return (None, response, error)
74
+
75
+ return (result, response, None)
76
+
77
+ def update_sso_controller(self, **kwargs) -> tuple:
78
+ """
79
+ Update SSO Options
80
+
81
+ Args:
82
+ ssologinonly (bool): Enable SSO Login Option
83
+
84
+ Returns:
85
+ :obj:`Tuple[dict, Response, Exception]`:
86
+ A tuple containing:
87
+ - An empty dictionary `{}` on success (due to 204 No Content),
88
+ - The raw `Response` object,
89
+ - Or an `Exception` if an error occurred.
90
+
91
+ The dictionary is always empty since the API returns no response body.
92
+
93
+ Example:
94
+
95
+ Enable SSO Login Option
96
+
97
+ >>> _, _, err = client.zpa.admin_sso_controller.update_sso_controller(
98
+ ... ssologinonly=True
99
+ ... )
100
+ >>> if err:
101
+ ... print(f"Error updating SSO login option: {err}")
102
+ ... return
103
+ ... print("SSO login-only setting updated successfully.")
104
+ """
105
+ http_method = "post".upper()
106
+ api_url = format_url(
107
+ f"""
108
+ {self._zpa_base_endpoint}
109
+ /ssoLoginOptions
110
+ """
111
+ )
112
+
113
+ body = kwargs
114
+ request, error = self._request_executor.create_request(http_method, api_url, body=body)
115
+ if error:
116
+ return (None, None, error)
117
+
118
+ response, error = self._request_executor.execute(request)
119
+ if error or response is None:
120
+ return (None, response, error)
121
+
122
+ if getattr(response, "status_code", None) == 204:
123
+ return ({}, response, None)
124
+
125
+ try:
126
+ result = response.get_body()
127
+ except Exception as error:
128
+ return (None, response, error)
129
+
130
+ return (result, response, None)
@@ -0,0 +1,307 @@
1
+ """
2
+ Copyright (c) 2023, Zscaler Inc.
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any
5
+ purpose with or without fee is hereby granted, provided that the above
6
+ copyright notice and this permission notice appear in all copies.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+ """
16
+
17
+ from zscaler.api_client import APIClient
18
+ from zscaler.request_executor import RequestExecutor
19
+ from zscaler.zpa.models.api_keys import ApiKeys
20
+ from zscaler.utils import format_url
21
+
22
+
23
+ class ApiKeysAPI(APIClient):
24
+ """
25
+ A Client object for the Api Keys resource.
26
+ """
27
+
28
+ def __init__(self, request_executor, config):
29
+ super().__init__()
30
+ self._request_executor: RequestExecutor = request_executor
31
+ customer_id = config["client"].get("customerId")
32
+ self._zpa_base_endpoint = f"/zpa/mgmtconfig/v1/admin/customers/{customer_id}"
33
+
34
+ def list_api_keys(self, query_params=None) -> tuple:
35
+ """
36
+ List all API keys details.
37
+
38
+ Args:
39
+ query_params {dict}: Map of query parameters for the request.
40
+
41
+ ``[query_params.page]`` {str}: Specifies the page number.
42
+
43
+ ``[query_params.page_size]`` {str}: Specifies the page size.
44
+ If not provided, the default page size is 20. The max page size is 500.
45
+
46
+ ``[query_params.search]`` {str}: Search string for filtering results.
47
+ ``[query_params.microtenant_id]`` {str}: The unique identifier of the microtenant of ZPA tenant.
48
+
49
+ Returns:
50
+ :obj:`Tuple`: A tuple containing (list of ApiKeys instances, Response, error)
51
+
52
+ Examples:
53
+ >>> key_list, _, err = client.zpa.api_keys.list_api_keys(
54
+ ... query_params={'search': 'ZPA_Dev01', 'page': '1', 'page_size': '100'})
55
+ ... if err:
56
+ ... print(f"Error listing api key: {err}")
57
+ ... return
58
+ ... print(f"Total api key found: {len(key_list)}")
59
+ ... for key in keys:
60
+ ... print(key.as_dict())
61
+ """
62
+ http_method = "get".upper()
63
+ api_url = format_url(
64
+ f"""
65
+ {self._zpa_base_endpoint}
66
+ /apiKeys
67
+ """
68
+ )
69
+
70
+ query_params = query_params or {}
71
+ microtenant_id = query_params.get("microtenant_id", None)
72
+ if microtenant_id:
73
+ query_params["microtenantId"] = microtenant_id
74
+
75
+ request, error = self._request_executor.create_request(http_method, api_url, params=query_params)
76
+ if error:
77
+ return (None, None, error)
78
+
79
+ response, error = self._request_executor.execute(request, ApiKeys)
80
+ if error:
81
+ return (None, response, error)
82
+
83
+ try:
84
+ result = []
85
+ for item in response.get_results():
86
+ result.append(ApiKeys(self.form_response_body(item)))
87
+ except Exception as error:
88
+ return (None, response, error)
89
+ return (result, response, None)
90
+
91
+ def get_api_key(self, key_id: str, query_params=None) -> tuple:
92
+ """
93
+ Fetches a specific api key by ID.
94
+
95
+ Args:
96
+ key_id (str): The unique identifier for the API Key.
97
+ query_params (dict, optional): Map of query parameters for the request.
98
+ ``[query_params.microtenant_id]`` {str}: The microtenant ID, if applicable.
99
+
100
+ Returns:
101
+ :obj:`Tuple`: A tuple containing (ApiKeys instance, Response, error).
102
+
103
+ Examples:
104
+ >>> fetched_key, _, err = client.zpa.api_keys.get_api_key('999999')
105
+ ... if err:
106
+ ... print(f"Error fetching key by ID: {err}")
107
+ ... return
108
+ ... print(f"Fetched key by ID: {fetched_key.as_dict()}")
109
+ """
110
+ http_method = "get".upper()
111
+ api_url = format_url(
112
+ f"""{
113
+ self._zpa_base_endpoint}
114
+ /apiKeys/{key_id}
115
+ """
116
+ )
117
+
118
+ query_params = query_params or {}
119
+ microtenant_id = query_params.get("microtenant_id", None)
120
+ if microtenant_id:
121
+ query_params["microtenantId"] = microtenant_id
122
+
123
+ request, error = self._request_executor.create_request(http_method, api_url, params=query_params)
124
+ if error:
125
+ return (None, None, error)
126
+
127
+ response, error = self._request_executor.execute(request, ApiKeys)
128
+ if error:
129
+ return (None, response, error)
130
+
131
+ try:
132
+ result = ApiKeys(self.form_response_body(response.get_body()))
133
+ except Exception as error:
134
+ return (None, response, error)
135
+ return (result, response, None)
136
+
137
+ def add_api_key(self, **kwargs) -> tuple:
138
+ """
139
+ Adds a new ZPA API Key.
140
+
141
+ Args:
142
+ name (str): The name of the API Key.
143
+
144
+ Keyword Args:
145
+ enabled (bool): Whether the API Key is enabled. Defaults to True.
146
+ token_expiry_time_in_sec (str): The API Key Client ID.
147
+ role_id (str): The unique identifier for the role associated with the API Key.
148
+
149
+ Returns:
150
+ :obj:`Tuple[dict, Response, Exception]`:
151
+ A tuple containing:
152
+ - An empty dictionary `{}` on success (due to 204 No Content),
153
+ - The raw `Response` object,
154
+ - Or an `Exception` if an error occurred.
155
+ - This returns the client_secret attribute
156
+
157
+ Examples:
158
+ >>> added_key, _, err = client.zpa.api_keys.add_api_key(
159
+ ... name=f"NewAPIKey_{random.randint(1000, 10000)}",
160
+ ... enabled=True,
161
+ ... token_expiry_time_in_sec= '3600',
162
+ ... role_id='28',
163
+ ... )
164
+ ... if err:
165
+ ... print(f"Error creating api key: {err}")
166
+ ... return
167
+ ... print(f"API key created successfully: {added_key.as_dict()}")
168
+ ... key_dict = added_key.as_dict()
169
+ ... client_secret = key_dict.get('client_secret')
170
+ ... print(f"Client Secret: {client_secret}")
171
+ """
172
+ http_method = "post".upper()
173
+ api_url = format_url(
174
+ f"""{
175
+ self._zpa_base_endpoint}
176
+ /apiKeys
177
+ """
178
+ )
179
+
180
+ body = kwargs
181
+
182
+ microtenant_id = body.get("microtenant_id", None)
183
+ params = {"microtenantId": microtenant_id} if microtenant_id else {}
184
+
185
+ request, error = self._request_executor.create_request(http_method, api_url, body=body, params=params)
186
+ if error:
187
+ return (None, None, error)
188
+
189
+ response, error = self._request_executor.execute(request, ApiKeys)
190
+ if error:
191
+ return (None, response, error)
192
+
193
+ try:
194
+ result = ApiKeys(self.form_response_body(response.get_body()))
195
+ except Exception as error:
196
+ return (None, response, error)
197
+ return (result, response, None)
198
+
199
+ def update_api_key(self, key_id: str, **kwargs) -> tuple:
200
+ """
201
+ Update a new ZPA API Key.
202
+
203
+ Args:
204
+ key_id (str): The unique identifier for the API Key.
205
+ microtenant_id (str, optional): The optional ID of the microtenant if applicable.
206
+
207
+ Args:
208
+ name (str): The name of the API Key.
209
+
210
+ Keyword Args:
211
+ enabled (bool): Whether the API Key is enabled. Defaults to True.
212
+ token_expiry_time_in_sec (str): The API Key Client ID.
213
+ role_id (str): The unique identifier for the role associated with the API Key.
214
+
215
+ Returns:
216
+ :obj:`Tuple[dict, Response, Exception]`:
217
+ A tuple containing:
218
+ - An empty dictionary `{}` on success (due to 204 No Content),
219
+ - The raw `Response` object,
220
+ - Or an `Exception` if an error occurred.
221
+ - This method does not return the client_secret attribute
222
+
223
+ The dictionary is always empty since the API returns no response body.
224
+
225
+ Examples:
226
+ >>> added_key, _, err = client.zpa.api_keys.add_api_key(
227
+ ... name=f"NewAPIKey_{random.randint(1000, 10000)}",
228
+ ... enabled=True,
229
+ ... token_expiry_time_in_sec= '3600',
230
+ ... role_id='28',
231
+ ... )
232
+ ... if err:
233
+ ... print(f"Error creating api key: {err}")
234
+ ... return
235
+ ... print(f"API key created successfully: {added_key.as_dict()}")
236
+ """
237
+ http_method = "put".upper()
238
+ api_url = format_url(
239
+ f"""
240
+ {self._zpa_base_endpoint}
241
+ /apiKeys/{key_id}
242
+ """
243
+ )
244
+
245
+ body = {}
246
+
247
+ body.update(kwargs)
248
+
249
+ microtenant_id = body.get("microtenant_id", None)
250
+ params = {"microtenantId": microtenant_id} if microtenant_id else {}
251
+
252
+ request, error = self._request_executor.create_request(http_method, api_url, body, {}, params)
253
+ if error:
254
+ return (None, None, error)
255
+
256
+ response, error = self._request_executor.execute(request, ApiKeys)
257
+ if error:
258
+ return (None, response, error)
259
+
260
+ if response is None:
261
+ return (ApiKeys({"id": key_id}), None, None)
262
+
263
+ try:
264
+ result = ApiKeys(self.form_response_body(response.get_body()))
265
+ except Exception as error:
266
+ return (None, response, error)
267
+ return (result, response, None)
268
+
269
+ def delete_api_key(self, key_id: str, microtenant_id: str = None) -> tuple:
270
+ """
271
+ Deletes the specified API Key from ZPA.
272
+
273
+ Args:
274
+ key_id (str): The unique identifier for the API Key.
275
+ microtenant_id (str, optional): The optional ID of the microtenant if applicable.
276
+
277
+ Returns:
278
+ tuple: A tuple containing the response and error (if any).
279
+
280
+ Examples:
281
+ >>> _, _, err = client.zpa.api_keys.delete_key_id(
282
+ ... key_id='999999'
283
+ ... )
284
+ ... if err:
285
+ ... print(f"Error deleting api key: {err}")
286
+ ... return
287
+ ... print(f"API Key with ID {'999999'} deleted successfully.")
288
+ """
289
+ http_method = "delete".upper()
290
+ api_url = format_url(
291
+ f"""
292
+ {self._zpa_base_endpoint}
293
+ /apiKeys/{key_id}
294
+ """
295
+ )
296
+
297
+ params = {"microtenantId": microtenant_id} if microtenant_id else {}
298
+
299
+ request, error = self._request_executor.create_request(http_method, api_url, params=params)
300
+ if error:
301
+ return (None, None, error)
302
+
303
+ response, error = self._request_executor.execute(request)
304
+ if error:
305
+ return (None, response, error)
306
+
307
+ return (None, response, None)
@@ -300,11 +300,9 @@ class AppConnectorGroupAPI(APIClient):
300
300
 
301
301
  body.update(kwargs)
302
302
 
303
- # Use get instead of pop to keep microtenant_id in the body
304
303
  microtenant_id = body.get("microtenant_id", None)
305
304
  params = {"microtenantId": microtenant_id} if microtenant_id else {}
306
305
 
307
- # Create the request
308
306
  request, error = self._request_executor.create_request(http_method, api_url, body, {}, params)
309
307
  if error:
310
308
  return (None, None, error)