zscaler-sdk-python 1.4.3__tar.gz → 1.5.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 (390) hide show
  1. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/PKG-INFO +7 -1
  2. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/README.md +6 -0
  3. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/pyproject.toml +2 -2
  4. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/__init__.py +1 -1
  5. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/config/config_setter.py +1 -0
  6. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/exceptions/exceptions.py +4 -0
  7. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_client.py +1 -1
  8. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/request_executor.py +58 -9
  9. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/utils.py +11 -0
  10. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/devices.py +243 -10
  11. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/alert_subscriptions.py +40 -2
  12. zscaler_sdk_python-1.5.0/zscaler/zia/browser_control_settings.py +225 -0
  13. zscaler_sdk_python-1.5.0/zscaler/zia/casb_dlp_rules.py +660 -0
  14. zscaler_sdk_python-1.5.0/zscaler/zia/casb_malware_rules.py +413 -0
  15. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_firewall.py +95 -76
  16. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dns_gatways.py +1 -1
  17. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/legacy.py +55 -1
  18. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/locations.py +204 -87
  19. zscaler_sdk_python-1.5.0/zscaler/zia/models/browser_control_settings.py +137 -0
  20. zscaler_sdk_python-1.5.0/zscaler/zia/models/casb_dlp_rules.py +338 -0
  21. zscaler_sdk_python-1.5.0/zscaler/zia/models/casb_malware_rules.py +139 -0
  22. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_dns_rules.py +9 -2
  23. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_ips_rules.py +10 -2
  24. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_rules.py +10 -3
  25. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloudappcontrol.py +10 -3
  26. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dlp_resources.py +10 -2
  27. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/forwarding_control_policy.py +10 -2
  28. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/location_management.py +68 -0
  29. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/pac_files.py +10 -2
  30. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/proxy_gatways.py +10 -2
  31. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/rule_labels.py +10 -1
  32. zscaler_sdk_python-1.5.0/zscaler/zia/models/saas_security_api.py +250 -0
  33. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/ssl_inspection_rules.py +10 -1
  34. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/url_filtering_rules.py +10 -1
  35. zscaler_sdk_python-1.5.0/zscaler/zia/models/vzen_clusters.py +86 -0
  36. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/workload_groups.py +10 -1
  37. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/risk_profiles.py +1 -1
  38. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/rule_labels.py +6 -6
  39. zscaler_sdk_python-1.5.0/zscaler/zia/saas_security_api.py +279 -0
  40. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/url_categories.py +12 -7
  41. zscaler_sdk_python-1.5.0/zscaler/zia/vzen_clusters.py +332 -0
  42. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/zia_service.py +50 -0
  43. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_protection.py +6 -2
  44. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/legacy.py +1 -1
  45. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/policies.py +2 -2
  46. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/zpa_service.py +1 -1
  47. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/LICENSE.md +0 -0
  48. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/api_client.py +0 -0
  49. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/cache/__init__.py +0 -0
  50. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/cache/cache.py +0 -0
  51. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/cache/no_op_cache.py +0 -0
  52. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/cache/zscaler_cache.py +0 -0
  53. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/config/__init__.py +0 -0
  54. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/config/config_validator.py +0 -0
  55. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/constants.py +0 -0
  56. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/error_messages.py +0 -0
  57. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/errors/__init__.py +0 -0
  58. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/errors/error.py +0 -0
  59. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/errors/http_error.py +0 -0
  60. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/errors/response_checker.py +0 -0
  61. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/errors/zscaler_api_error.py +0 -0
  62. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/exceptions/__init__.py +0 -0
  63. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/helpers.py +0 -0
  64. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/logger.py +0 -0
  65. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_collection.py +0 -0
  66. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_http_client.py +0 -0
  67. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_oauth_client.py +0 -0
  68. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_object.py +0 -0
  69. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/oneapi_response.py +0 -0
  70. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ratelimiter/__init__.py +0 -0
  71. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ratelimiter/ratelimiter.py +0 -0
  72. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/user_agent.py +0 -0
  73. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/__init__.py +0 -0
  74. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/admin_user.py +0 -0
  75. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/company.py +0 -0
  76. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/devices.py +0 -0
  77. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/entitlements.py +0 -0
  78. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/fail_open_policy.py +0 -0
  79. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/forwarding_profile.py +0 -0
  80. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/legacy.py +0 -0
  81. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/admin_roles.py +0 -0
  82. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/admin_user.py +0 -0
  83. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/devices.py +0 -0
  84. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/failopenpolicy.py +0 -0
  85. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/forwardingprofile.py +0 -0
  86. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/getcompanyinfo.py +0 -0
  87. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/manage_pass.py +0 -0
  88. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/secrets_otp.py +0 -0
  89. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/secrets_passwords.py +0 -0
  90. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/trustednetworks.py +0 -0
  91. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/webappservice.py +0 -0
  92. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/webpolicy.py +0 -0
  93. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/webprivacy.py +0 -0
  94. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  95. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  96. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/secrets.py +0 -0
  97. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/trusted_networks.py +0 -0
  98. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/web_app_service.py +0 -0
  99. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/web_policy.py +0 -0
  100. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/web_privacy.py +0 -0
  101. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zcc/zcc_service.py +0 -0
  102. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/__init__.py +0 -0
  103. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/admin.py +0 -0
  104. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/alerts.py +0 -0
  105. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/apps.py +0 -0
  106. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/devices.py +0 -0
  107. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/inventory.py +0 -0
  108. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/legacy.py +0 -0
  109. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/activeapplications.py +0 -0
  110. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/administration.py +0 -0
  111. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/alerts.py +0 -0
  112. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/application_users.py +0 -0
  113. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/applications.py +0 -0
  114. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/call_quality_metrics.py +0 -0
  115. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/common.py +0 -0
  116. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/software_inventory.py +0 -0
  117. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/troubleshooting.py +0 -0
  118. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/models/users.py +0 -0
  119. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/troubleshooting.py +0 -0
  120. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/users.py +0 -0
  121. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zdx/zdx_service.py +0 -0
  122. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/__init__.py +0 -0
  123. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/activate.py +0 -0
  124. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/admin_roles.py +0 -0
  125. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/admin_users.py +0 -0
  126. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/advanced_settings.py +0 -0
  127. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/apptotal.py +0 -0
  128. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/atp_policy.py +0 -0
  129. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/audit_logs.py +0 -0
  130. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/authentication_settings.py +0 -0
  131. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/bandwidth_classes.py +0 -0
  132. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/bandwidth_control_rules.py +0 -0
  133. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_app_instances.py +0 -0
  134. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_applications.py +0 -0
  135. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_browser_isolation.py +0 -0
  136. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_firewall_dns.py +0 -0
  137. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_firewall_ips.py +0 -0
  138. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_firewall_rules.py +0 -0
  139. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloud_nss.py +0 -0
  140. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/cloudappcontrol.py +0 -0
  141. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dedicated_ip_gateways.py +0 -0
  142. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/device_management.py +0 -0
  143. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dlp_dictionary.py +0 -0
  144. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dlp_engine.py +0 -0
  145. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dlp_resources.py +0 -0
  146. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dlp_templates.py +0 -0
  147. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/dlp_web_rules.py +0 -0
  148. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/end_user_notification.py +0 -0
  149. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/file_type_control_rule.py +0 -0
  150. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/forwarding_control.py +0 -0
  151. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/ftp_control_policy.py +0 -0
  152. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/gre_tunnel.py +0 -0
  153. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/intermediate_certificates.py +0 -0
  154. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/iot_report.py +0 -0
  155. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/ipv6_config.py +0 -0
  156. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/malware_protection_policy.py +0 -0
  157. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/mobile_threat_settings.py +0 -0
  158. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/__init__.py +0 -0
  159. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/activation.py +0 -0
  160. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/admin_roles.py +0 -0
  161. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/admin_users.py +0 -0
  162. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/advanced_settings.py +0 -0
  163. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  164. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/alert_subscriptions.py +0 -0
  165. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/apptotal.py +0 -0
  166. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/authentication_settings.py +0 -0
  167. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/bandwidth_classes.py +0 -0
  168. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
  169. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_app_instances.py +0 -0
  170. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_app_policy.py +0 -0
  171. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
  172. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
  173. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
  174. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
  175. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
  176. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
  177. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
  178. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
  179. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
  180. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/cloud_nss.py +0 -0
  181. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/common.py +0 -0
  182. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
  183. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/device_groups.py +0 -0
  184. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/devices.py +0 -0
  185. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dlp_dictionary.py +0 -0
  186. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dlp_engine.py +0 -0
  187. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dlp_templates.py +0 -0
  188. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/dlp_web_rules.py +0 -0
  189. /zscaler_sdk_python-1.4.3/zscaler/zia/models/dns_gatways.py → /zscaler_sdk_python-1.5.0/zscaler/zia/models/dns_gateways.py +0 -0
  190. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/endusernotification.py +0 -0
  191. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/filetyperules.py +0 -0
  192. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/ftp_control_policy.py +0 -0
  193. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/gre_recommended_list.py +0 -0
  194. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/gre_tunnel_info.py +0 -0
  195. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/gre_tunnels.py +0 -0
  196. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/gre_vips.py +0 -0
  197. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/intermediate_certificates.py +0 -0
  198. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/iotreport.py +0 -0
  199. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/ipv6_config.py +0 -0
  200. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/location_group.py +0 -0
  201. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/malware_protection_settings.py +0 -0
  202. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/mobile_threat_settings.py +0 -0
  203. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/nat_control_policy.py +0 -0
  204. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/nss_servers.py +0 -0
  205. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/organization_information.py +0 -0
  206. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/proxies.py +0 -0
  207. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/remoteassistance.py +0 -0
  208. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/risk_profiles.py +0 -0
  209. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/sandboxrules.py +0 -0
  210. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/security_policy_settings.py +0 -0
  211. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/shadow_it_report.py +0 -0
  212. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/subclouds.py +0 -0
  213. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/system_audit.py +0 -0
  214. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
  215. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/time_intervals.py +0 -0
  216. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/traffic_datacenters.py +0 -0
  217. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
  218. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/traffic_extranet.py +0 -0
  219. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/traffic_static_ip.py +0 -0
  220. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
  221. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  222. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/urlcategory.py +0 -0
  223. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/user_management.py +0 -0
  224. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/models/zpa_gateway.py +0 -0
  225. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/nat_control_policy.py +0 -0
  226. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/nss_servers.py +0 -0
  227. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/organization_information.py +0 -0
  228. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/pac_files.py +0 -0
  229. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/policy_export.py +0 -0
  230. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/proxies.py +0 -0
  231. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/remote_assistance.py +0 -0
  232. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/sandbox.py +0 -0
  233. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/sandbox_rules.py +0 -0
  234. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/security_policy_settings.py +0 -0
  235. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/shadow_it_report.py +0 -0
  236. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/ssl_inspection_rules.py +0 -0
  237. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/sub_clouds.py +0 -0
  238. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/system_audit.py +0 -0
  239. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/tenancy_restriction_profile.py +0 -0
  240. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/time_intervals.py +0 -0
  241. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/traffic_datacenters.py +0 -0
  242. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/traffic_extranet.py +0 -0
  243. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/traffic_static_ip.py +0 -0
  244. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/traffic_vpn_credentials.py +0 -0
  245. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/url_filtering.py +0 -0
  246. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/user_management.py +0 -0
  247. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/workload_groups.py +0 -0
  248. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zia/zpa_gateway.py +0 -0
  249. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/__init__.py +0 -0
  250. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/administrator_controller.py +0 -0
  251. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_connector_groups.py +0 -0
  252. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_connector_schedule.py +0 -0
  253. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_connectors.py +0 -0
  254. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_segment_by_type.py +0 -0
  255. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_segments_ba.py +0 -0
  256. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_segments_ba_v2.py +0 -0
  257. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_segments_inspection.py +0 -0
  258. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/app_segments_pra.py +0 -0
  259. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/application_segment.py +0 -0
  260. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cbi_banner.py +0 -0
  261. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cbi_certificate.py +0 -0
  262. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cbi_profile.py +0 -0
  263. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cbi_region.py +0 -0
  264. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cbi_zpa_profile.py +0 -0
  265. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/certificates.py +0 -0
  266. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/client_settings.py +0 -0
  267. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/cloud_connector_groups.py +0 -0
  268. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/customer_controller.py +0 -0
  269. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/customer_version_profile.py +0 -0
  270. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/emergency_access.py +0 -0
  271. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/enrollment_certificates.py +0 -0
  272. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/idp.py +0 -0
  273. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/lss.py +0 -0
  274. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/machine_groups.py +0 -0
  275. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/microtenants.py +0 -0
  276. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/administrator_controller.py +0 -0
  277. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/app_connector_groups.py +0 -0
  278. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/app_connector_schedule.py +0 -0
  279. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/app_connectors.py +0 -0
  280. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
  281. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/app_protection_profile.py +0 -0
  282. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/application_segment.py +0 -0
  283. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/application_segment_lb.py +0 -0
  284. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/application_servers.py +0 -0
  285. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cbi_banner.py +0 -0
  286. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cbi_certificate.py +0 -0
  287. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cbi_profile.py +0 -0
  288. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cbi_region.py +0 -0
  289. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
  290. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/certificates.py +0 -0
  291. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/client_settings.py +0 -0
  292. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
  293. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/common.py +0 -0
  294. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/customer_controller.py +0 -0
  295. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/customer_version_profile.py +0 -0
  296. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/emergency_access.py +0 -0
  297. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/enrollment_certificates.py +0 -0
  298. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/idp.py +0 -0
  299. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/lss.py +0 -0
  300. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/machine_groups.py +0 -0
  301. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/microtenants.py +0 -0
  302. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
  303. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
  304. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/posture_profiles.py +0 -0
  305. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/pra_approval.py +0 -0
  306. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/pra_console.py +0 -0
  307. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
  308. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/pra_credential.py +0 -0
  309. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/pra_portal.py +0 -0
  310. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/provisioning_keys.py +0 -0
  311. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/role_controller.py +0 -0
  312. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/saml_attributes.py +0 -0
  313. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/scim_attributes.py +0 -0
  314. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/scim_groups.py +0 -0
  315. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/segment_group.py +0 -0
  316. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/server_group.py +0 -0
  317. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/service_edge_groups.py +0 -0
  318. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/service_edge_schedule.py +0 -0
  319. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/service_edges.py +0 -0
  320. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/models/trusted_network.py +0 -0
  321. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/posture_profiles.py +0 -0
  322. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/pra_approval.py +0 -0
  323. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/pra_console.py +0 -0
  324. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/pra_credential.py +0 -0
  325. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/pra_credential_pool.py +0 -0
  326. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/pra_portal.py +0 -0
  327. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/provisioning.py +0 -0
  328. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/role_controller.py +0 -0
  329. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/saml_attributes.py +0 -0
  330. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/scim_attributes.py +0 -0
  331. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/scim_groups.py +0 -0
  332. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/segment_groups.py +0 -0
  333. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/server_groups.py +0 -0
  334. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/servers.py +0 -0
  335. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/service_edge_group.py +0 -0
  336. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/service_edge_schedule.py +0 -0
  337. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/service_edges.py +0 -0
  338. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zpa/trusted_networks.py +0 -0
  339. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/__init__.py +0 -0
  340. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/account_details.py +0 -0
  341. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/activation.py +0 -0
  342. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/admin_roles.py +0 -0
  343. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/admin_users.py +0 -0
  344. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/api_keys.py +0 -0
  345. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/ec_groups.py +0 -0
  346. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/forwarding_gateways.py +0 -0
  347. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/forwarding_rules.py +0 -0
  348. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/ip_destination_groups.py +0 -0
  349. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/ip_groups.py +0 -0
  350. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/ip_source_groups.py +0 -0
  351. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/legacy.py +0 -0
  352. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/location_management.py +0 -0
  353. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/location_template.py +0 -0
  354. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/activation.py +0 -0
  355. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/admin_roles.py +0 -0
  356. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/admin_users.py +0 -0
  357. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/api_keys.py +0 -0
  358. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/common.py +0 -0
  359. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/ec_group_vm.py +0 -0
  360. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/ecgroup.py +0 -0
  361. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/forwarding_gateways.py +0 -0
  362. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/forwarding_rules.py +0 -0
  363. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/ip_destination_groups.py +0 -0
  364. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/ip_groups.py +0 -0
  365. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/ip_source_groups.py +0 -0
  366. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/location_management.py +0 -0
  367. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/location_templates.py +0 -0
  368. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/nw_service.py +0 -0
  369. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/nw_service_groups.py +0 -0
  370. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/provisioning_url.py +0 -0
  371. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
  372. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/models/zpa_resources.py +0 -0
  373. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/nw_service.py +0 -0
  374. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/nw_service_groups.py +0 -0
  375. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/provisioning_url.py +0 -0
  376. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/ztw/ztw_service.py +0 -0
  377. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/__init__.py +0 -0
  378. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/audit_logs.py +0 -0
  379. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/dlp_incidents.py +0 -0
  380. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/legacy.py +0 -0
  381. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/audit_logs.py +0 -0
  382. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/change_history.py +0 -0
  383. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/common.py +0 -0
  384. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/generated_tickets.py +0 -0
  385. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/incident_details.py +0 -0
  386. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/incident_evidence.py +0 -0
  387. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/incident_group_search.py +0 -0
  388. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/incident_search.py +0 -0
  389. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.0}/zscaler/zwa/models/incident_trigger.py +0 -0
  390. {zscaler_sdk_python-1.4.3 → zscaler_sdk_python-1.5.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.4.3
3
+ Version: 1.5.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
@@ -980,6 +980,7 @@ You can provide credentials via the `ZDX_CLIENT_ID`, `ZDX_CLIENT_SECRET` environ
980
980
  |--------------|-------------|-------------------|
981
981
  | `key_id` | _(String)_ A string that contains the key_id for the ZDX Portal.| `ZDX_CLIENT_ID` |
982
982
  | `key_secret` | _(String)_ A string that contains the key_secret key for the ZDX Portal.| `ZDX_CLIENT_SECRET` |
983
+ | `cloud` | _(String)_ The cloud name prefix that identifies the correct API endpoint.| `ZDX_CLOUD` |
983
984
 
984
985
  ### ZDX Legacy Client Initialization
985
986
 
@@ -1078,6 +1079,11 @@ When a 429 error is received, the `retry-after` header will tell you the time at
1078
1079
 
1079
1080
  This SDK uses the built-in retry strategy to automatically retry on 429 errors based on the response headers returned by each respective API service.
1080
1081
 
1082
+ | Configuration Option | Description |
1083
+ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
1084
+ | client.rateLimit.maxRetries | The number of times to retry (on retryable errors)
1085
+ | client.rateLimit.maxRetrySeconds | Max wait duration allowed for a retry backoff
1086
+
1081
1087
  ## Contributing
1082
1088
 
1083
1089
  At this moment we are not accepting contributions, but we welcome suggestions on how to improve this SDK or feature requests, which can then be added in future releases.
@@ -941,6 +941,7 @@ You can provide credentials via the `ZDX_CLIENT_ID`, `ZDX_CLIENT_SECRET` environ
941
941
  |--------------|-------------|-------------------|
942
942
  | `key_id` | _(String)_ A string that contains the key_id for the ZDX Portal.| `ZDX_CLIENT_ID` |
943
943
  | `key_secret` | _(String)_ A string that contains the key_secret key for the ZDX Portal.| `ZDX_CLIENT_SECRET` |
944
+ | `cloud` | _(String)_ The cloud name prefix that identifies the correct API endpoint.| `ZDX_CLOUD` |
944
945
 
945
946
  ### ZDX Legacy Client Initialization
946
947
 
@@ -1039,6 +1040,11 @@ When a 429 error is received, the `retry-after` header will tell you the time at
1039
1040
 
1040
1041
  This SDK uses the built-in retry strategy to automatically retry on 429 errors based on the response headers returned by each respective API service.
1041
1042
 
1043
+ | Configuration Option | Description |
1044
+ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
1045
+ | client.rateLimit.maxRetries | The number of times to retry (on retryable errors)
1046
+ | client.rateLimit.maxRetrySeconds | Max wait duration allowed for a retry backoff
1047
+
1042
1048
  ## Contributing
1043
1049
 
1044
1050
  At this moment we are not accepting contributions, but we welcome suggestions on how to improve this SDK or feature requests, which can then be added in future releases.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "1.4.3"
3
+ version = "1.5.0"
4
4
  description = "Official Python SDK for the Zscaler Products"
5
5
  authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
6
6
  license = "MIT"
@@ -48,7 +48,7 @@ isort = ">=5.13.0"
48
48
  pytest = ">=8.3.5"
49
49
  pytest-mock = ">=3.12.0"
50
50
  pytest-asyncio = ">=0.23.0"
51
- pytest-cov = ">=4.1.0"
51
+ pytest-cov = ">=6.2.1"
52
52
  pyfakefs = ">=5.7.0"
53
53
  responses = ">=0.25.7"
54
54
  sphinx = ">=7.2.0"
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "1.4.3"
32
+ __version__ = "1.5.0"
33
33
 
34
34
 
35
35
  from zscaler.oneapi_client import Client as ZscalerClient # noqa
@@ -39,6 +39,7 @@ class ConfigSetter:
39
39
  "proxy": {"port": "", "host": "", "username": "", "password": ""},
40
40
  "rateLimit": {
41
41
  "maxRetries": 2,
42
+ "maxRetrySeconds": "",
42
43
  },
43
44
  "testing": {"disableHttpsCheck": ""},
44
45
  }
@@ -84,3 +84,7 @@ class TokenRefreshError(Exception):
84
84
 
85
85
  class HeaderUpdateError(Exception):
86
86
  pass
87
+
88
+ class RetryTooLong(Exception):
89
+ """Raised when backoff time exceeds maxRetrySeconds configuration."""
90
+ pass
@@ -431,7 +431,7 @@ class LegacyZWAClient(Client):
431
431
  ):
432
432
  key_id = config.get("key_id", os.getenv("ZWA_CLIENT_ID"))
433
433
  key_secret = config.get("key_secret", os.getenv("ZWA_CLIENT_SECRET"))
434
- cloud = config.get("cloud", os.getenv("ZWACLOUD", "us1"))
434
+ cloud = config.get("cloud", os.getenv("ZWA_CLOUD", "us1"))
435
435
  timeout = config.get("timeout", 240)
436
436
  request_executor_impl = config.get("requestExecutor", None)
437
437
  # Initialize the LegacyZWAClientHelper with the extracted parameters
@@ -520,7 +520,6 @@ class RequestExecutor:
520
520
  HTTPStatus.CONFLICT,
521
521
  HTTPStatus.PRECONDITION_FAILED,
522
522
  HTTPStatus.TOO_MANY_REQUESTS,
523
- HTTPStatus.INTERNAL_SERVER_ERROR,
524
523
  HTTPStatus.SERVICE_UNAVAILABLE,
525
524
  HTTPStatus.GATEWAY_TIMEOUT,
526
525
  )
@@ -585,6 +584,36 @@ class RequestExecutor:
585
584
  logger.debug("Getting custom headers.")
586
585
  return self._custom_headers
587
586
 
587
+ # def get_retry_after(self, headers, logger):
588
+ # retry_limit_reset_header = (
589
+ # headers.get("x-ratelimit-reset") or
590
+ # headers.get("X-RateLimit-Reset") or
591
+ # headers.get("RateLimit-Reset") or
592
+
593
+ # # ZCC Specific Rate Limiting Headers (LegacyZCCClientHelper)
594
+ # headers.get("X-Rate-Limit-Retry-After-Seconds") or # ZCC /downloadDevices Rate Limiting Header (LegacyZCCClientHelper)
595
+ # headers.get("X-Rate-Limit-Remaining") # (LegacyZCCClientHelper)
596
+ # )
597
+ # retry_after = headers.get("Retry-After") or headers.get("retry-after")
598
+
599
+ # if retry_after:
600
+ # try:
601
+ # return int(retry_after.strip("s")) + 1 # Add 1 second padding
602
+ # except ValueError:
603
+ # logger.error(f"Error parsing Retry-After header: {retry_after}")
604
+ # return None
605
+
606
+ # if retry_limit_reset_header is not None:
607
+ # try:
608
+ # reset_seconds = float(retry_limit_reset_header)
609
+ # return reset_seconds + 1 # Add 1 second padding
610
+ # except ValueError:
611
+ # logger.error(f"Error parsing x-ratelimit-reset header: {retry_limit_reset_header}")
612
+ # return None
613
+
614
+ # logger.error("Missing Retry-After and X-Rate-Limit-Reset headers.")
615
+ # return None
616
+
588
617
  def get_retry_after(self, headers, logger):
589
618
  retry_limit_reset_header = (
590
619
  headers.get("x-ratelimit-reset") or
@@ -592,25 +621,45 @@ class RequestExecutor:
592
621
  headers.get("RateLimit-Reset") or
593
622
 
594
623
  # ZCC Specific Rate Limiting Headers (LegacyZCCClientHelper)
595
- headers.get("X-Rate-Limit-Retry-After-Seconds") or # ZCC /downloadDevices Rate Limiting Header (LegacyZCCClientHelper)
596
- headers.get("X-Rate-Limit-Remaining") # (LegacyZCCClientHelper)
624
+ headers.get("X-Rate-Limit-Retry-After-Seconds") or
625
+ headers.get("X-Rate-Limit-Remaining")
597
626
  )
598
627
  retry_after = headers.get("Retry-After") or headers.get("retry-after")
599
628
 
629
+ backoff = None
630
+
600
631
  if retry_after:
601
632
  try:
602
- return int(retry_after.strip("s")) + 1 # Add 1 second padding
633
+ backoff = int(retry_after.strip("s")) + 1 # Add 1s padding
603
634
  except ValueError:
604
635
  logger.error(f"Error parsing Retry-After header: {retry_after}")
605
636
  return None
606
637
 
607
- if retry_limit_reset_header is not None:
638
+ elif retry_limit_reset_header is not None:
608
639
  try:
609
- reset_seconds = float(retry_limit_reset_header)
610
- return reset_seconds + 1 # Add 1 second padding
640
+ backoff = float(retry_limit_reset_header) + 1
611
641
  except ValueError:
612
642
  logger.error(f"Error parsing x-ratelimit-reset header: {retry_limit_reset_header}")
613
643
  return None
644
+ else:
645
+ logger.error("Missing Retry-After and X-Rate-Limit-Reset headers.")
646
+ return None
647
+
648
+ # ✅ INSERT THIS BLOCK — check against maxRetrySeconds from config
649
+ max_retry_seconds = (
650
+ self._config.get("client", {})
651
+ .get("rateLimit", {})
652
+ .get("maxRetrySeconds", None)
653
+ )
654
+ if max_retry_seconds is not None:
655
+ try:
656
+ max_retry_seconds = int(max_retry_seconds)
657
+ if backoff > max_retry_seconds:
658
+ from zscaler.exceptions.exceptions import RetryTooLong
659
+ raise RetryTooLong(
660
+ f"Retry wait time {backoff} seconds exceeds configured maxRetrySeconds {max_retry_seconds}."
661
+ )
662
+ except ValueError:
663
+ logger.warning(f"Ignoring invalid maxRetrySeconds config value: {max_retry_seconds}")
614
664
 
615
- logger.error("Missing Retry-After and X-Rate-Limit-Reset headers.")
616
- return None
665
+ return backoff
@@ -78,6 +78,17 @@ reformat_params = [
78
78
  ("workload_groups", "workloadGroups"),
79
79
  ("service_ids", "services"),
80
80
  ("bandwidth_class_ids", "bandwidthClasses"),
81
+ ("virtual_zen_node_ids", "virtualZenNodes"),
82
+ ("smart_isolation_user_ids", "smartIsolationUsers"),
83
+ ("smart_isolation_group_ids", "smartIsolationGroups"),
84
+ ("cloud_app_tenant_ids", "cloudAppTenants"),
85
+ ("object_type_ids", "objectTypes"),
86
+ ("bucket_ids", "buckets"),
87
+ ("included_domain_profile_ids", "includedDomainProfiles"),
88
+ ("excluded_domain_profile_ids", "excludedDomainProfiles"),
89
+ ("criteria_domain_profile_ids", "criteriaDomainProfiles"),
90
+ ("email_recipient_profile_ids", "emailRecipientProfiles"),
91
+ ("entity_group_ids", "entityGroups"),
81
92
  ]
82
93
 
83
94
 
@@ -32,23 +32,29 @@ class Devices(ZscalerObject):
32
32
  config (dict): A dictionary representing the configuration.
33
33
  """
34
34
  super().__init__(config)
35
- print(f"DEBUG: Raw config received in devices: {config}") # Debugging input
36
35
 
37
36
  if config:
38
- self.users = ZscalerCollection.form_list(config.get("devices", []), common_reference.Common)
37
+ self.id = config["id"] if "id" in config else None
38
+ self.name = config["name"] if "name" in config else None
39
+ self.userid = config["userid"] if "userid" in config else None
39
40
  self.next_offset = config["next_offset"] if "next_offset" in config else None
40
41
  else:
41
- self.devices = ZscalerCollection.form_list([], str)
42
+ self.id = None
43
+ self.name = None
42
44
  self.next_offset = None
43
-
44
- print(f"DEBUG: Parsed Devices object - {len(self.devices)} devices found")
45
+ self.userid = None
45
46
 
46
47
  def request_format(self):
47
48
  """
48
49
  Return the object as a dictionary in the format expected for API requests.
49
50
  """
50
51
  parent_req_format = super().request_format()
51
- current_obj_format = {"devices": [device.as_dict() for device in self.devices], "next_offset": self.next_offset}
52
+ current_obj_format = {
53
+ "id": self.id,
54
+ "name": self.name,
55
+ "next_offset": self.next_offset,
56
+ "userid": self.userid,
57
+ }
52
58
  parent_req_format.update(current_obj_format)
53
59
  return parent_req_format
54
60
 
@@ -70,14 +76,35 @@ class DeviceModelInfo(ZscalerObject):
70
76
  if config:
71
77
  self.id = config["id"] if "id" in config else None
72
78
  self.name = config["name"] if "name" in config else None
73
- self.hardware = config["hardware"] if "hardware" in config else None
74
- self.network = ZscalerCollection.form_list(config["network"] if "network" in config else [], str)
75
- self.software = config["software"] if "software" in config else None
79
+
80
+ self.network = ZscalerCollection.form_list(
81
+ config["network"] if "network" in config else [], Network
82
+ )
83
+
84
+ if "hardware" in config:
85
+ if isinstance(config["hardware"], Hardware):
86
+ self.hardware = config["hardware"]
87
+ elif config["hardware"] is not None:
88
+ self.hardware = Hardware(config["hardware"])
89
+ else:
90
+ self.hardware = None
91
+ else:
92
+ self.hardware = None
93
+
94
+ if "software" in config:
95
+ if isinstance(config["software"], Software):
96
+ self.software = config["software"]
97
+ elif config["software"] is not None:
98
+ self.software = Software(config["software"])
99
+ else:
100
+ self.software = None
101
+ else:
102
+ self.software = None
76
103
  else:
77
104
  self.id = None
78
105
  self.name = None
79
106
  self.hardware = None
80
- self.network = ZscalerCollection.form_list([], str)
107
+ self.network = []
81
108
  self.software = None
82
109
 
83
110
  def request_format(self):
@@ -96,6 +123,212 @@ class DeviceModelInfo(ZscalerObject):
96
123
  return parent_req_format
97
124
 
98
125
 
126
+ class Hardware(ZscalerObject):
127
+ """
128
+ A class for Hardware objects.
129
+ """
130
+
131
+ def __init__(self, config=None):
132
+ """
133
+ Initialize the Hardware model based on API response.
134
+
135
+ Args:
136
+ config (dict): A dictionary representing the configuration.
137
+ """
138
+ super().__init__(config)
139
+
140
+ if config:
141
+ self.hw_model = config["hw_model"] \
142
+ if "hw_model" in config else None
143
+ self.hw_mfg = config["hw_mfg"] \
144
+ if "hw_mfg" in config else None
145
+ self.hw_type = config["hw_type"] \
146
+ if "hw_type" in config else None
147
+ self.hw_serial = config["hw_serial"] \
148
+ if "hw_serial" in config else None
149
+ self.tot_mem = config["tot_mem"] \
150
+ if "tot_mem" in config else None
151
+ self.gpu = config["gpu"] \
152
+ if "gpu" in config else None
153
+ self.disk_size = config["disk_size"] \
154
+ if "disk_size" in config else None
155
+ self.disk_model = config["disk_model"] \
156
+ if "disk_model" in config else None
157
+ self.disk_type = config["disk_type"] \
158
+ if "disk_type" in config else None
159
+ self.cpu_mfg = config["cpu_mfg"] \
160
+ if "cpu_mfg" in config else None
161
+ self.cpu_model = config["cpu_model"] \
162
+ if "cpu_model" in config else None
163
+ self.speed_ghz = config["speed_ghz"] \
164
+ if "speed_ghz" in config else None
165
+ self.logical_proc = config["logical_proc"] \
166
+ if "logical_proc" in config else None
167
+ self.num_cores = config["num_cores"] \
168
+ if "num_cores" in config else None
169
+ else:
170
+ self.hw_model = None
171
+ self.hw_mfg = None
172
+ self.hw_type = None
173
+ self.hw_serial = None
174
+ self.tot_mem = None
175
+ self.gpu = None
176
+ self.disk_size = None
177
+ self.disk_model = None
178
+ self.disk_type = None
179
+ self.cpu_mfg = None
180
+ self.cpu_model = None
181
+ self.speed_ghz = None
182
+ self.logical_proc = None
183
+ self.num_cores = None
184
+
185
+ def request_format(self):
186
+ """
187
+ Return the object as a dictionary in the format expected for API requests.
188
+ """
189
+ parent_req_format = super().request_format()
190
+ current_obj_format = {
191
+ "hw_model": self.hw_model,
192
+ "hw_mfg": self.hw_mfg,
193
+ "hw_type": self.hw_type,
194
+ "hw_serial": self.hw_serial,
195
+ "tot_mem": self.tot_mem,
196
+ "gpu": self.gpu,
197
+ "disk_size": self.disk_size,
198
+ "disk_model": self.disk_model,
199
+ "disk_type": self.disk_type,
200
+ "cpu_mfg": self.cpu_mfg,
201
+ "cpu_model": self.cpu_model,
202
+ "speed_ghz": self.speed_ghz,
203
+ "logical_proc": self.logical_proc,
204
+ "num_cores": self.num_cores
205
+ }
206
+ parent_req_format.update(current_obj_format)
207
+ return parent_req_format
208
+
209
+
210
+ class Network(ZscalerObject):
211
+ """
212
+ A class for Network objects.
213
+ """
214
+
215
+ def __init__(self, config=None):
216
+ """
217
+ Initialize the Network model based on API response.
218
+
219
+ Args:
220
+ config (dict): A dictionary representing the configuration.
221
+ """
222
+ super().__init__(config)
223
+
224
+ if config:
225
+ self.net_type = config["net_type"] \
226
+ if "net_type" in config else None
227
+ self.status = config["status"] \
228
+ if "status" in config else None
229
+ self.ipv4 = config["ipv4"] \
230
+ if "ipv4" in config else None
231
+ self.ipv6 = config["ipv6"] \
232
+ if "ipv6" in config else None
233
+ self.dns_srvs = config["dns_srvs"] \
234
+ if "dns_srvs" in config else None
235
+ self.dns_suffix = config["dns_suffix"] \
236
+ if "dns_suffix" in config else None
237
+ self.gateway = config["gateway"] \
238
+ if "gateway" in config else None
239
+ self.mac = config["mac"] \
240
+ if "mac" in config else None
241
+ self.guid = config["guid"] \
242
+ if "guid" in config else None
243
+ else:
244
+ self.net_type = None
245
+ self.status = None
246
+ self.ipv4 = None
247
+ self.ipv6 = None
248
+ self.dns_srvs = None
249
+ self.dns_suffix = None
250
+ self.gateway = None
251
+ self.mac = None
252
+ self.guid = None
253
+
254
+ def request_format(self):
255
+ """
256
+ Return the object as a dictionary in the format expected for API requests.
257
+ """
258
+ parent_req_format = super().request_format()
259
+ current_obj_format = {
260
+ "net_type": self.net_type,
261
+ "status": self.status,
262
+ "ipv4": self.ipv4,
263
+ "ipv6": self.ipv6,
264
+ "dns_srvs": self.dns_srvs,
265
+ "dns_suffix": self.dns_suffix,
266
+ "gateway": self.gateway,
267
+ "mac": self.mac,
268
+ "guid": self.guid
269
+ }
270
+ parent_req_format.update(current_obj_format)
271
+ return parent_req_format
272
+
273
+ class Software(ZscalerObject):
274
+ """
275
+ A class for Software objects.
276
+ """
277
+
278
+ def __init__(self, config=None):
279
+ """
280
+ Initialize the Software model based on API response.
281
+
282
+ Args:
283
+ config (dict): A dictionary representing the configuration.
284
+ """
285
+ super().__init__(config)
286
+
287
+ if config:
288
+ self.os_name = config["os_name"] \
289
+ if "os_name" in config else None
290
+ self.os_ver = config["os_ver"] \
291
+ if "os_ver" in config else None
292
+ self.os_build = config["os_build"] \
293
+ if "os_build" in config else None
294
+ self.hostname = config["hostname"] \
295
+ if "hostname" in config else None
296
+ self.netbios = config["netbios"] \
297
+ if "netbios" in config else None
298
+ self.user = config["user"] \
299
+ if "user" in config else None
300
+ self.client_conn_ver = config["client_conn_ver"] \
301
+ if "client_conn_ver" in config else None
302
+ self.zdx_ver = config["zdx_ver"] \
303
+ if "zdx_ver" in config else None
304
+ else:
305
+ self.os_name = None
306
+ self.os_ver = None
307
+ self.os_build = None
308
+ self.hostname = None
309
+ self.netbios = None
310
+ self.user = None
311
+ self.client_conn_ver = None
312
+ self.zdx_ver = None
313
+
314
+ def request_format(self):
315
+ """
316
+ Return the object as a dictionary in the format expected for API requests.
317
+ """
318
+ parent_req_format = super().request_format()
319
+ current_obj_format = {
320
+ "os_name": self.os_name,
321
+ "os_ver": self.os_ver,
322
+ "os_build": self.os_build,
323
+ "hostname": self.hostname,
324
+ "netbios": self.netbios,
325
+ "user": self.user,
326
+ "client_conn_ver": self.client_conn_ver,
327
+ "zdx_ver": self.zdx_ver
328
+ }
329
+ parent_req_format.update(current_obj_format)
330
+ return parent_req_format
331
+
99
332
  class DeviceActiveApplications(ZscalerObject):
100
333
  """
101
334
  A class for DeviceActiveApplications objects.
@@ -72,8 +72,8 @@ class AlertSubscriptionsAPI(APIClient):
72
72
  return (None, response, error)
73
73
 
74
74
  try:
75
- advanced_settings = AlertSubscriptions(response.get_body())
76
- return (advanced_settings, response, None)
75
+ results = [AlertSubscriptions(item) for item in response.get_body()]
76
+ return (results, response, None)
77
77
  except Exception as ex:
78
78
  return (None, response, ex)
79
79
 
@@ -257,3 +257,41 @@ class AlertSubscriptionsAPI(APIClient):
257
257
  return (None, response, error)
258
258
 
259
259
  return (result, response, None)
260
+
261
+ def delete_alert_subscription(self, subscription_id: int) -> tuple:
262
+ """
263
+ Deletes the specified Alert Subscription
264
+
265
+ Args:
266
+ subscription_id (str): The unique identifier of the Alert Subscription.
267
+
268
+ Returns:
269
+ tuple: A tuple containing the response object and error (if any).
270
+
271
+ Examples:
272
+ Delete a Alert Subscription:
273
+
274
+ >>> _, _, error = client.zia.alert_subscriptions.delete_alert_subscription('73459')
275
+ >>> if error:
276
+ ... print(f"Error deleting Alert Subscription: {error}")
277
+ ... return
278
+ ... print(f"Alert Subscription with ID {'73459' deleted successfully.")
279
+ """
280
+ http_method = "delete".upper()
281
+ api_url = format_url(
282
+ f"""
283
+ {self._zia_base_endpoint}
284
+ /alertSubscriptions/{subscription_id}
285
+ """
286
+ )
287
+
288
+ params = {}
289
+
290
+ request, error = self._request_executor.create_request(http_method, api_url, params=params)
291
+ if error:
292
+ return (None, None, error)
293
+
294
+ response, error = self._request_executor.execute(request)
295
+ if error:
296
+ return (None, response, error)
297
+ return (None, response, None)