zscaler-sdk-python 1.9.28__tar.gz → 1.9.30__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 (1057) hide show
  1. zscaler_sdk_python-1.9.30/PKG-INFO +1925 -0
  2. zscaler_sdk_python-1.9.30/pyproject.toml +95 -0
  3. zscaler_sdk_python-1.9.30/zscaler/__init__.py +35 -0
  4. zscaler_sdk_python-1.9.30/zscaler/api_client.py +95 -0
  5. zscaler_sdk_python-1.9.30/zscaler/config/config_setter.py +197 -0
  6. zscaler_sdk_python-1.9.30/zscaler/config/config_validator.py +179 -0
  7. zscaler_sdk_python-1.9.30/zscaler/error_messages.py +45 -0
  8. zscaler_sdk_python-1.9.30/zscaler/errors/__init__.py +25 -0
  9. zscaler_sdk_python-1.9.30/zscaler/errors/graphql_error.py +196 -0
  10. zscaler_sdk_python-1.9.30/zscaler/errors/http_error.py +15 -0
  11. zscaler_sdk_python-1.9.30/zscaler/errors/response_checker.py +88 -0
  12. zscaler_sdk_python-1.9.30/zscaler/errors/zscaler_api_error.py +71 -0
  13. zscaler_sdk_python-1.9.30/zscaler/helpers.py +438 -0
  14. zscaler_sdk_python-1.9.30/zscaler/logger.py +245 -0
  15. zscaler_sdk_python-1.9.30/zscaler/oneapi_client.py +708 -0
  16. zscaler_sdk_python-1.9.30/zscaler/oneapi_collection.py +21 -0
  17. zscaler_sdk_python-1.9.30/zscaler/oneapi_http_client.py +421 -0
  18. zscaler_sdk_python-1.9.30/zscaler/oneapi_oauth_client.py +542 -0
  19. zscaler_sdk_python-1.9.30/zscaler/oneapi_object.py +80 -0
  20. zscaler_sdk_python-1.9.30/zscaler/oneapi_response.py +449 -0
  21. zscaler_sdk_python-1.9.30/zscaler/request_executor.py +952 -0
  22. zscaler_sdk_python-1.9.30/zscaler/types.py +39 -0
  23. zscaler_sdk_python-1.9.30/zscaler/utils.py +1007 -0
  24. zscaler_sdk_python-1.9.30/zscaler/zaiguard/legacy.py +456 -0
  25. zscaler_sdk_python-1.9.30/zscaler/zaiguard/models/policy_detection.py +402 -0
  26. zscaler_sdk_python-1.9.30/zscaler/zaiguard/policy_detection.py +193 -0
  27. zscaler_sdk_python-1.9.30/zscaler/zbi/custom_apps.py +281 -0
  28. zscaler_sdk_python-1.9.30/zscaler/zbi/models/custom_apps.py +82 -0
  29. zscaler_sdk_python-1.9.30/zscaler/zbi/models/report_configs.py +185 -0
  30. zscaler_sdk_python-1.9.30/zscaler/zbi/report_configs.py +328 -0
  31. zscaler_sdk_python-1.9.30/zscaler/zcc/_field_introspect.py +181 -0
  32. zscaler_sdk_python-1.9.30/zscaler/zcc/admin_user.py +280 -0
  33. zscaler_sdk_python-1.9.30/zscaler/zcc/application_profiles.py +247 -0
  34. zscaler_sdk_python-1.9.30/zscaler/zcc/company.py +76 -0
  35. zscaler_sdk_python-1.9.30/zscaler/zcc/custom_ip_base_apps.py +123 -0
  36. zscaler_sdk_python-1.9.30/zscaler/zcc/devices.py +692 -0
  37. zscaler_sdk_python-1.9.30/zscaler/zcc/entitlements.py +190 -0
  38. zscaler_sdk_python-1.9.30/zscaler/zcc/fail_open_policy.py +144 -0
  39. zscaler_sdk_python-1.9.30/zscaler/zcc/forwarding_profile.py +176 -0
  40. zscaler_sdk_python-1.9.30/zscaler/zcc/legacy.py +517 -0
  41. zscaler_sdk_python-1.9.30/zscaler/zcc/models/admin_roles.py +165 -0
  42. zscaler_sdk_python-1.9.30/zscaler/zcc/models/admin_user.py +135 -0
  43. zscaler_sdk_python-1.9.30/zscaler/zcc/models/application_profiles.py +1015 -0
  44. zscaler_sdk_python-1.9.30/zscaler/zcc/models/company_info.py +1514 -0
  45. zscaler_sdk_python-1.9.30/zscaler/zcc/models/custom_ip_base_apps.py +127 -0
  46. zscaler_sdk_python-1.9.30/zscaler/zcc/models/devices.py +546 -0
  47. zscaler_sdk_python-1.9.30/zscaler/zcc/models/forwardingprofile.py +485 -0
  48. zscaler_sdk_python-1.9.30/zscaler/zcc/models/manage_pass.py +98 -0
  49. zscaler_sdk_python-1.9.30/zscaler/zcc/models/predefined_ip_based_apps.py +133 -0
  50. zscaler_sdk_python-1.9.30/zscaler/zcc/models/process_based_apps.py +78 -0
  51. zscaler_sdk_python-1.9.30/zscaler/zcc/models/secrets_otp.py +76 -0
  52. zscaler_sdk_python-1.9.30/zscaler/zcc/models/secrets_passwords.py +62 -0
  53. zscaler_sdk_python-1.9.30/zscaler/zcc/models/webpolicy.py +1146 -0
  54. zscaler_sdk_python-1.9.30/zscaler/zcc/models/webprivacy.py +86 -0
  55. zscaler_sdk_python-1.9.30/zscaler/zcc/predefined_ip_based_apps.py +123 -0
  56. zscaler_sdk_python-1.9.30/zscaler/zcc/process_based_apps.py +123 -0
  57. zscaler_sdk_python-1.9.30/zscaler/zcc/secrets.py +130 -0
  58. zscaler_sdk_python-1.9.30/zscaler/zcc/trusted_networks.py +252 -0
  59. zscaler_sdk_python-1.9.30/zscaler/zcc/web_app_service.py +88 -0
  60. zscaler_sdk_python-1.9.30/zscaler/zcc/web_policy.py +507 -0
  61. zscaler_sdk_python-1.9.30/zscaler/zcc/web_privacy.py +136 -0
  62. zscaler_sdk_python-1.9.30/zscaler/zcc/zcc_service.py +158 -0
  63. zscaler_sdk_python-1.9.30/zscaler/zdx/admin.py +177 -0
  64. zscaler_sdk_python-1.9.30/zscaler/zdx/alerts.py +332 -0
  65. zscaler_sdk_python-1.9.30/zscaler/zdx/apps.py +462 -0
  66. zscaler_sdk_python-1.9.30/zscaler/zdx/devices.py +860 -0
  67. zscaler_sdk_python-1.9.30/zscaler/zdx/inventory.py +181 -0
  68. zscaler_sdk_python-1.9.30/zscaler/zdx/legacy.py +450 -0
  69. zscaler_sdk_python-1.9.30/zscaler/zdx/models/administration.py +50 -0
  70. zscaler_sdk_python-1.9.30/zscaler/zdx/models/alerts.py +212 -0
  71. zscaler_sdk_python-1.9.30/zscaler/zdx/models/application_users.py +99 -0
  72. zscaler_sdk_python-1.9.30/zscaler/zdx/models/applications.py +258 -0
  73. zscaler_sdk_python-1.9.30/zscaler/zdx/models/call_quality_metrics.py +60 -0
  74. zscaler_sdk_python-1.9.30/zscaler/zdx/models/common.py +385 -0
  75. zscaler_sdk_python-1.9.30/zscaler/zdx/models/devices.py +920 -0
  76. zscaler_sdk_python-1.9.30/zscaler/zdx/models/snapshot.py +69 -0
  77. zscaler_sdk_python-1.9.30/zscaler/zdx/models/software_inventory.py +106 -0
  78. zscaler_sdk_python-1.9.30/zscaler/zdx/models/troubleshooting.py +449 -0
  79. zscaler_sdk_python-1.9.30/zscaler/zdx/models/users.py +96 -0
  80. zscaler_sdk_python-1.9.30/zscaler/zdx/snapshot.py +123 -0
  81. zscaler_sdk_python-1.9.30/zscaler/zdx/troubleshooting.py +662 -0
  82. zscaler_sdk_python-1.9.30/zscaler/zdx/users.py +170 -0
  83. zscaler_sdk_python-1.9.30/zscaler/zdx/zdx_service.py +95 -0
  84. zscaler_sdk_python-1.9.30/zscaler/zeasm/findings.py +252 -0
  85. zscaler_sdk_python-1.9.30/zscaler/zeasm/lookalike_domains.py +145 -0
  86. zscaler_sdk_python-1.9.30/zscaler/zeasm/models/common.py +54 -0
  87. zscaler_sdk_python-1.9.30/zscaler/zeasm/models/findings.py +170 -0
  88. zscaler_sdk_python-1.9.30/zscaler/zeasm/models/lookalike_domains.py +125 -0
  89. zscaler_sdk_python-1.9.30/zscaler/zeasm/models/organizations.py +61 -0
  90. zscaler_sdk_python-1.9.30/zscaler/zeasm/organizations.py +100 -0
  91. zscaler_sdk_python-1.9.30/zscaler/zeasm/zeasm_service.py +51 -0
  92. zscaler_sdk_python-1.9.30/zscaler/zia/activate.py +198 -0
  93. zscaler_sdk_python-1.9.30/zscaler/zia/admin_roles.py +644 -0
  94. zscaler_sdk_python-1.9.30/zscaler/zia/admin_users.py +496 -0
  95. zscaler_sdk_python-1.9.30/zscaler/zia/advanced_settings.py +207 -0
  96. zscaler_sdk_python-1.9.30/zscaler/zia/alert_subscriptions.py +298 -0
  97. zscaler_sdk_python-1.9.30/zscaler/zia/apptotal.py +215 -0
  98. zscaler_sdk_python-1.9.30/zscaler/zia/atp_policy.py +394 -0
  99. zscaler_sdk_python-1.9.30/zscaler/zia/audit_logs.py +154 -0
  100. zscaler_sdk_python-1.9.30/zscaler/zia/authentication_settings.py +293 -0
  101. zscaler_sdk_python-1.9.30/zscaler/zia/bandwidth_classes.py +338 -0
  102. zscaler_sdk_python-1.9.30/zscaler/zia/bandwidth_control_rules.py +418 -0
  103. zscaler_sdk_python-1.9.30/zscaler/zia/browser_control_settings.py +224 -0
  104. zscaler_sdk_python-1.9.30/zscaler/zia/casb_dlp_rules.py +677 -0
  105. zscaler_sdk_python-1.9.30/zscaler/zia/casb_malware_rules.py +404 -0
  106. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_app_instances.py +297 -0
  107. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_applications.py +197 -0
  108. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_browser_isolation.py +88 -0
  109. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_firewall.py +2282 -0
  110. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_firewall_dns.py +393 -0
  111. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_firewall_ips.py +385 -0
  112. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_firewall_rules.py +381 -0
  113. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_nss.py +694 -0
  114. zscaler_sdk_python-1.9.30/zscaler/zia/cloud_to_cloud_ir.py +311 -0
  115. zscaler_sdk_python-1.9.30/zscaler/zia/cloudappcontrol.py +760 -0
  116. zscaler_sdk_python-1.9.30/zscaler/zia/custom_file_types.py +334 -0
  117. zscaler_sdk_python-1.9.30/zscaler/zia/dedicated_ip_gateways.py +82 -0
  118. zscaler_sdk_python-1.9.30/zscaler/zia/device_management.py +206 -0
  119. zscaler_sdk_python-1.9.30/zscaler/zia/dlp_dictionary.py +522 -0
  120. zscaler_sdk_python-1.9.30/zscaler/zia/dlp_engine.py +401 -0
  121. zscaler_sdk_python-1.9.30/zscaler/zia/dlp_resources.py +616 -0
  122. zscaler_sdk_python-1.9.30/zscaler/zia/dlp_templates.py +294 -0
  123. zscaler_sdk_python-1.9.30/zscaler/zia/dlp_web_rules.py +438 -0
  124. zscaler_sdk_python-1.9.30/zscaler/zia/dns_gatways.py +326 -0
  125. zscaler_sdk_python-1.9.30/zscaler/zia/end_user_notification.py +161 -0
  126. zscaler_sdk_python-1.9.30/zscaler/zia/file_type_control_rule.py +414 -0
  127. zscaler_sdk_python-1.9.30/zscaler/zia/forwarding_control.py +423 -0
  128. zscaler_sdk_python-1.9.30/zscaler/zia/ftp_control_policy.py +138 -0
  129. zscaler_sdk_python-1.9.30/zscaler/zia/gre_tunnel.py +750 -0
  130. zscaler_sdk_python-1.9.30/zscaler/zia/intermediate_certificates.py +702 -0
  131. zscaler_sdk_python-1.9.30/zscaler/zia/iot_report.py +198 -0
  132. zscaler_sdk_python-1.9.30/zscaler/zia/ips_signature_rules.py +474 -0
  133. zscaler_sdk_python-1.9.30/zscaler/zia/ipv6_config.py +201 -0
  134. zscaler_sdk_python-1.9.30/zscaler/zia/legacy.py +1290 -0
  135. zscaler_sdk_python-1.9.30/zscaler/zia/locations.py +1214 -0
  136. zscaler_sdk_python-1.9.30/zscaler/zia/malware_protection_policy.py +495 -0
  137. zscaler_sdk_python-1.9.30/zscaler/zia/mobile_threat_settings.py +148 -0
  138. zscaler_sdk_python-1.9.30/zscaler/zia/models/activation.py +94 -0
  139. zscaler_sdk_python-1.9.30/zscaler/zia/models/admin_roles.py +135 -0
  140. zscaler_sdk_python-1.9.30/zscaler/zia/models/admin_users.py +333 -0
  141. zscaler_sdk_python-1.9.30/zscaler/zia/models/advanced_settings.py +319 -0
  142. zscaler_sdk_python-1.9.30/zscaler/zia/models/alert_subscriptions.py +86 -0
  143. zscaler_sdk_python-1.9.30/zscaler/zia/models/apptotal.py +259 -0
  144. zscaler_sdk_python-1.9.30/zscaler/zia/models/authentication_settings.py +93 -0
  145. zscaler_sdk_python-1.9.30/zscaler/zia/models/bandwidth_classes.py +79 -0
  146. zscaler_sdk_python-1.9.30/zscaler/zia/models/bandwidth_control_rules.py +138 -0
  147. zscaler_sdk_python-1.9.30/zscaler/zia/models/browser_control_settings.py +138 -0
  148. zscaler_sdk_python-1.9.30/zscaler/zia/models/casb_dlp_rules.py +367 -0
  149. zscaler_sdk_python-1.9.30/zscaler/zia/models/casb_malware_rules.py +128 -0
  150. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_app_instances.py +141 -0
  151. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_app_policy.py +54 -0
  152. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_browser_isolation.py +53 -0
  153. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_app_services.py +50 -0
  154. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_destination_groups.py +66 -0
  155. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_ips_rules.py +227 -0
  156. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_nw_application_groups.py +56 -0
  157. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_nw_applications.py +53 -0
  158. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_nw_service.py +143 -0
  159. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_nw_service_groups.py +54 -0
  160. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_rules.py +251 -0
  161. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_source_groups.py +61 -0
  162. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_firewall_time_windows.py +57 -0
  163. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_nss.py +613 -0
  164. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloud_to_cloud_ir.py +437 -0
  165. zscaler_sdk_python-1.9.30/zscaler/zia/models/cloudappcontrol.py +265 -0
  166. zscaler_sdk_python-1.9.30/zscaler/zia/models/common.py +177 -0
  167. zscaler_sdk_python-1.9.30/zscaler/zia/models/custom_file_types.py +65 -0
  168. zscaler_sdk_python-1.9.30/zscaler/zia/models/dedicated_ip_gateways.py +103 -0
  169. zscaler_sdk_python-1.9.30/zscaler/zia/models/device_groups.py +59 -0
  170. zscaler_sdk_python-1.9.30/zscaler/zia/models/devices.py +67 -0
  171. zscaler_sdk_python-1.9.30/zscaler/zia/models/dlp_dictionary.py +246 -0
  172. zscaler_sdk_python-1.9.30/zscaler/zia/models/dlp_engine.py +92 -0
  173. zscaler_sdk_python-1.9.30/zscaler/zia/models/dlp_resources.py +200 -0
  174. zscaler_sdk_python-1.9.30/zscaler/zia/models/dlp_templates.py +68 -0
  175. zscaler_sdk_python-1.9.30/zscaler/zia/models/dlp_web_rules.py +242 -0
  176. zscaler_sdk_python-1.9.30/zscaler/zia/models/dns_gateways.py +110 -0
  177. zscaler_sdk_python-1.9.30/zscaler/zia/models/endusernotification.py +157 -0
  178. zscaler_sdk_python-1.9.30/zscaler/zia/models/forwarding_control_policy.py +254 -0
  179. zscaler_sdk_python-1.9.30/zscaler/zia/models/ftp_control_policy.py +63 -0
  180. zscaler_sdk_python-1.9.30/zscaler/zia/models/gre_recommended_list.py +75 -0
  181. zscaler_sdk_python-1.9.30/zscaler/zia/models/gre_tunnel_info.py +71 -0
  182. zscaler_sdk_python-1.9.30/zscaler/zia/models/gre_tunnels.py +137 -0
  183. zscaler_sdk_python-1.9.30/zscaler/zia/models/gre_vips.py +168 -0
  184. zscaler_sdk_python-1.9.30/zscaler/zia/models/intermediate_certificates.py +159 -0
  185. zscaler_sdk_python-1.9.30/zscaler/zia/models/iotreport.py +107 -0
  186. zscaler_sdk_python-1.9.30/zscaler/zia/models/ips_signature_rules.py +294 -0
  187. zscaler_sdk_python-1.9.30/zscaler/zia/models/ipv6_config.py +108 -0
  188. zscaler_sdk_python-1.9.30/zscaler/zia/models/location_group.py +83 -0
  189. zscaler_sdk_python-1.9.30/zscaler/zia/models/location_management.py +388 -0
  190. zscaler_sdk_python-1.9.30/zscaler/zia/models/malware_protection_settings.py +103 -0
  191. zscaler_sdk_python-1.9.30/zscaler/zia/models/mobile_threat_settings.py +93 -0
  192. zscaler_sdk_python-1.9.30/zscaler/zia/models/nat_control_policy.py +226 -0
  193. zscaler_sdk_python-1.9.30/zscaler/zia/models/nss_servers.py +65 -0
  194. zscaler_sdk_python-1.9.30/zscaler/zia/models/organization_information.py +454 -0
  195. zscaler_sdk_python-1.9.30/zscaler/zia/models/pac_files.py +206 -0
  196. zscaler_sdk_python-1.9.30/zscaler/zia/models/proxies.py +100 -0
  197. zscaler_sdk_python-1.9.30/zscaler/zia/models/proxy_gateways.py +83 -0
  198. zscaler_sdk_python-1.9.30/zscaler/zia/models/risk_profiles.py +176 -0
  199. zscaler_sdk_python-1.9.30/zscaler/zia/models/rule_labels.py +82 -0
  200. zscaler_sdk_python-1.9.30/zscaler/zia/models/saas_security_api.py +322 -0
  201. zscaler_sdk_python-1.9.30/zscaler/zia/models/sandbox.py +86 -0
  202. zscaler_sdk_python-1.9.30/zscaler/zia/models/secure_browsing.py +271 -0
  203. zscaler_sdk_python-1.9.30/zscaler/zia/models/security_policy_settings.py +51 -0
  204. zscaler_sdk_python-1.9.30/zscaler/zia/models/shadow_it_report.py +318 -0
  205. zscaler_sdk_python-1.9.30/zscaler/zia/models/ssl_inspection_rules.py +504 -0
  206. zscaler_sdk_python-1.9.30/zscaler/zia/models/subclouds.py +282 -0
  207. zscaler_sdk_python-1.9.30/zscaler/zia/models/system_audit.py +286 -0
  208. zscaler_sdk_python-1.9.30/zscaler/zia/models/tenancy_restriction_profile.py +99 -0
  209. zscaler_sdk_python-1.9.30/zscaler/zia/models/time_intervals.py +64 -0
  210. zscaler_sdk_python-1.9.30/zscaler/zia/models/traffic_capture.py +262 -0
  211. zscaler_sdk_python-1.9.30/zscaler/zia/models/traffic_datacenters.py +116 -0
  212. zscaler_sdk_python-1.9.30/zscaler/zia/models/traffic_dc_exclusions.py +77 -0
  213. zscaler_sdk_python-1.9.30/zscaler/zia/models/traffic_static_ip.py +90 -0
  214. zscaler_sdk_python-1.9.30/zscaler/zia/models/traffic_vpn_credentials.py +89 -0
  215. zscaler_sdk_python-1.9.30/zscaler/zia/models/url_filtering_rules.py +225 -0
  216. zscaler_sdk_python-1.9.30/zscaler/zia/models/urlcategory.py +196 -0
  217. zscaler_sdk_python-1.9.30/zscaler/zia/models/user_management.py +183 -0
  218. zscaler_sdk_python-1.9.30/zscaler/zia/models/vzen_clusters.py +80 -0
  219. zscaler_sdk_python-1.9.30/zscaler/zia/models/vzen_nodes.py +99 -0
  220. zscaler_sdk_python-1.9.30/zscaler/zia/models/workload_groups.py +205 -0
  221. zscaler_sdk_python-1.9.30/zscaler/zia/models/zpa_gateway.py +91 -0
  222. zscaler_sdk_python-1.9.30/zscaler/zia/nat_control_policy.py +364 -0
  223. zscaler_sdk_python-1.9.30/zscaler/zia/nss_servers.py +305 -0
  224. zscaler_sdk_python-1.9.30/zscaler/zia/organization_information.py +169 -0
  225. zscaler_sdk_python-1.9.30/zscaler/zia/pac_files.py +623 -0
  226. zscaler_sdk_python-1.9.30/zscaler/zia/policy_export.py +93 -0
  227. zscaler_sdk_python-1.9.30/zscaler/zia/proxies.py +415 -0
  228. zscaler_sdk_python-1.9.30/zscaler/zia/remote_assistance.py +141 -0
  229. zscaler_sdk_python-1.9.30/zscaler/zia/risk_profiles.py +458 -0
  230. zscaler_sdk_python-1.9.30/zscaler/zia/rule_labels.py +328 -0
  231. zscaler_sdk_python-1.9.30/zscaler/zia/saas_security_api.py +374 -0
  232. zscaler_sdk_python-1.9.30/zscaler/zia/sandbox.py +358 -0
  233. zscaler_sdk_python-1.9.30/zscaler/zia/sandbox_rules.py +357 -0
  234. zscaler_sdk_python-1.9.30/zscaler/zia/secure_browsing.py +333 -0
  235. zscaler_sdk_python-1.9.30/zscaler/zia/security_policy_settings.py +261 -0
  236. zscaler_sdk_python-1.9.30/zscaler/zia/shadow_it_report.py +570 -0
  237. zscaler_sdk_python-1.9.30/zscaler/zia/ssl_inspection_rules.py +367 -0
  238. zscaler_sdk_python-1.9.30/zscaler/zia/sub_clouds.py +177 -0
  239. zscaler_sdk_python-1.9.30/zscaler/zia/system_audit.py +86 -0
  240. zscaler_sdk_python-1.9.30/zscaler/zia/tenancy_restriction_profile.py +396 -0
  241. zscaler_sdk_python-1.9.30/zscaler/zia/time_intervals.py +285 -0
  242. zscaler_sdk_python-1.9.30/zscaler/zia/traffic_capture.py +576 -0
  243. zscaler_sdk_python-1.9.30/zscaler/zia/traffic_datacenters.py +356 -0
  244. zscaler_sdk_python-1.9.30/zscaler/zia/traffic_extranet.py +308 -0
  245. zscaler_sdk_python-1.9.30/zscaler/zia/traffic_static_ip.py +397 -0
  246. zscaler_sdk_python-1.9.30/zscaler/zia/traffic_vpn_credentials.py +367 -0
  247. zscaler_sdk_python-1.9.30/zscaler/zia/url_categories.py +763 -0
  248. zscaler_sdk_python-1.9.30/zscaler/zia/url_filtering.py +552 -0
  249. zscaler_sdk_python-1.9.30/zscaler/zia/user_management.py +1000 -0
  250. zscaler_sdk_python-1.9.30/zscaler/zia/vzen_clusters.py +335 -0
  251. zscaler_sdk_python-1.9.30/zscaler/zia/vzen_nodes.py +377 -0
  252. zscaler_sdk_python-1.9.30/zscaler/zia/workload_groups.py +384 -0
  253. zscaler_sdk_python-1.9.30/zscaler/zia/zia_service.py +745 -0
  254. zscaler_sdk_python-1.9.30/zscaler/zia/zpa_gateway.py +354 -0
  255. zscaler_sdk_python-1.9.30/zscaler/zid/api_client.py +530 -0
  256. zscaler_sdk_python-1.9.30/zscaler/zid/groups.py +614 -0
  257. zscaler_sdk_python-1.9.30/zscaler/zid/models/api_client.py +319 -0
  258. zscaler_sdk_python-1.9.30/zscaler/zid/models/common.py +90 -0
  259. zscaler_sdk_python-1.9.30/zscaler/zid/models/groups.py +173 -0
  260. zscaler_sdk_python-1.9.30/zscaler/zid/models/resource_servers.py +201 -0
  261. zscaler_sdk_python-1.9.30/zscaler/zid/models/user_entitlement.py +150 -0
  262. zscaler_sdk_python-1.9.30/zscaler/zid/models/users.py +166 -0
  263. zscaler_sdk_python-1.9.30/zscaler/zid/resource_servers.py +157 -0
  264. zscaler_sdk_python-1.9.30/zscaler/zid/user_entitlement.py +121 -0
  265. zscaler_sdk_python-1.9.30/zscaler/zid/users.py +402 -0
  266. zscaler_sdk_python-1.9.30/zscaler/zid/zid_service.py +70 -0
  267. zscaler_sdk_python-1.9.30/zscaler/zins/cyber_security.py +230 -0
  268. zscaler_sdk_python-1.9.30/zscaler/zins/firewall.py +295 -0
  269. zscaler_sdk_python-1.9.30/zscaler/zins/iot.py +145 -0
  270. zscaler_sdk_python-1.9.30/zscaler/zins/models/__init__.py +19 -0
  271. zscaler_sdk_python-1.9.30/zscaler/zins/models/common.py +284 -0
  272. zscaler_sdk_python-1.9.30/zscaler/zins/models/inputs.py +477 -0
  273. zscaler_sdk_python-1.9.30/zscaler/zins/saas_security.py +142 -0
  274. zscaler_sdk_python-1.9.30/zscaler/zins/shadow_it.py +339 -0
  275. zscaler_sdk_python-1.9.30/zscaler/zins/web_traffic.py +488 -0
  276. zscaler_sdk_python-1.9.30/zscaler/zins/zins_service.py +78 -0
  277. zscaler_sdk_python-1.9.30/zscaler/zms/agent_groups.py +212 -0
  278. zscaler_sdk_python-1.9.30/zscaler/zms/agents.py +289 -0
  279. zscaler_sdk_python-1.9.30/zscaler/zms/app_catalog.py +141 -0
  280. zscaler_sdk_python-1.9.30/zscaler/zms/app_zones.py +132 -0
  281. zscaler_sdk_python-1.9.30/zscaler/zms/models/__init__.py +19 -0
  282. zscaler_sdk_python-1.9.30/zscaler/zms/models/common.py +448 -0
  283. zscaler_sdk_python-1.9.30/zscaler/zms/models/inputs.py +536 -0
  284. zscaler_sdk_python-1.9.30/zscaler/zms/nonces.py +216 -0
  285. zscaler_sdk_python-1.9.30/zscaler/zms/policy_rules.py +230 -0
  286. zscaler_sdk_python-1.9.30/zscaler/zms/resource_groups.py +315 -0
  287. zscaler_sdk_python-1.9.30/zscaler/zms/resources.py +287 -0
  288. zscaler_sdk_python-1.9.30/zscaler/zms/tags.py +339 -0
  289. zscaler_sdk_python-1.9.30/zscaler/zms/zms_service.py +105 -0
  290. zscaler_sdk_python-1.9.30/zscaler/zpa/admin_sso_controller.py +127 -0
  291. zscaler_sdk_python-1.9.30/zscaler/zpa/administrator_controller.py +305 -0
  292. zscaler_sdk_python-1.9.30/zscaler/zpa/api_keys.py +308 -0
  293. zscaler_sdk_python-1.9.30/zscaler/zpa/app_connector_groups.py +471 -0
  294. zscaler_sdk_python-1.9.30/zscaler/zpa/app_connector_schedule.py +219 -0
  295. zscaler_sdk_python-1.9.30/zscaler/zpa/app_connectors.py +282 -0
  296. zscaler_sdk_python-1.9.30/zscaler/zpa/app_protection.py +1200 -0
  297. zscaler_sdk_python-1.9.30/zscaler/zpa/app_segment_by_type.py +148 -0
  298. zscaler_sdk_python-1.9.30/zscaler/zpa/app_segments_ba.py +531 -0
  299. zscaler_sdk_python-1.9.30/zscaler/zpa/app_segments_ba_v2.py +487 -0
  300. zscaler_sdk_python-1.9.30/zscaler/zpa/app_segments_inspection.py +517 -0
  301. zscaler_sdk_python-1.9.30/zscaler/zpa/app_segments_pra.py +484 -0
  302. zscaler_sdk_python-1.9.30/zscaler/zpa/application_segment.py +1246 -0
  303. zscaler_sdk_python-1.9.30/zscaler/zpa/branch_connector_group.py +162 -0
  304. zscaler_sdk_python-1.9.30/zscaler/zpa/branch_connectors.py +95 -0
  305. zscaler_sdk_python-1.9.30/zscaler/zpa/browser_protection.py +231 -0
  306. zscaler_sdk_python-1.9.30/zscaler/zpa/c2c_ip_ranges.py +403 -0
  307. zscaler_sdk_python-1.9.30/zscaler/zpa/cbi_banner.py +257 -0
  308. zscaler_sdk_python-1.9.30/zscaler/zpa/cbi_certificate.py +250 -0
  309. zscaler_sdk_python-1.9.30/zscaler/zpa/cbi_profile.py +384 -0
  310. zscaler_sdk_python-1.9.30/zscaler/zpa/cbi_region.py +78 -0
  311. zscaler_sdk_python-1.9.30/zscaler/zpa/cbi_zpa_profile.py +136 -0
  312. zscaler_sdk_python-1.9.30/zscaler/zpa/certificates.py +359 -0
  313. zscaler_sdk_python-1.9.30/zscaler/zpa/client_settings.py +205 -0
  314. zscaler_sdk_python-1.9.30/zscaler/zpa/cloud_connector_controller.py +94 -0
  315. zscaler_sdk_python-1.9.30/zscaler/zpa/cloud_connector_groups.py +194 -0
  316. zscaler_sdk_python-1.9.30/zscaler/zpa/config_override_controller.py +218 -0
  317. zscaler_sdk_python-1.9.30/zscaler/zpa/customer_controller.py +68 -0
  318. zscaler_sdk_python-1.9.30/zscaler/zpa/customer_domain.py +171 -0
  319. zscaler_sdk_python-1.9.30/zscaler/zpa/customer_dr_tool.py +95 -0
  320. zscaler_sdk_python-1.9.30/zscaler/zpa/customer_version_profile.py +184 -0
  321. zscaler_sdk_python-1.9.30/zscaler/zpa/emergency_access.py +347 -0
  322. zscaler_sdk_python-1.9.30/zscaler/zpa/enrollment_certificates.py +448 -0
  323. zscaler_sdk_python-1.9.30/zscaler/zpa/extranet_resource.py +94 -0
  324. zscaler_sdk_python-1.9.30/zscaler/zpa/idp.py +149 -0
  325. zscaler_sdk_python-1.9.30/zscaler/zpa/legacy.py +1044 -0
  326. zscaler_sdk_python-1.9.30/zscaler/zpa/location_controller.py +230 -0
  327. zscaler_sdk_python-1.9.30/zscaler/zpa/lss.py +649 -0
  328. zscaler_sdk_python-1.9.30/zscaler/zpa/machine_groups.py +206 -0
  329. zscaler_sdk_python-1.9.30/zscaler/zpa/managed_browser_profile.py +100 -0
  330. zscaler_sdk_python-1.9.30/zscaler/zpa/microtenants.py +395 -0
  331. zscaler_sdk_python-1.9.30/zscaler/zpa/models/administrator_controller.py +147 -0
  332. zscaler_sdk_python-1.9.30/zscaler/zpa/models/api_keys.py +104 -0
  333. zscaler_sdk_python-1.9.30/zscaler/zpa/models/app_connector_groups.py +298 -0
  334. zscaler_sdk_python-1.9.30/zscaler/zpa/models/app_connector_schedule.py +57 -0
  335. zscaler_sdk_python-1.9.30/zscaler/zpa/models/app_connectors.py +178 -0
  336. zscaler_sdk_python-1.9.30/zscaler/zpa/models/app_protection_predefined_controls.py +222 -0
  337. zscaler_sdk_python-1.9.30/zscaler/zpa/models/app_protection_profile.py +827 -0
  338. zscaler_sdk_python-1.9.30/zscaler/zpa/models/application_segment.py +1130 -0
  339. zscaler_sdk_python-1.9.30/zscaler/zpa/models/application_segment_lb.py +97 -0
  340. zscaler_sdk_python-1.9.30/zscaler/zpa/models/application_servers.py +64 -0
  341. zscaler_sdk_python-1.9.30/zscaler/zpa/models/branch_connectors.py +92 -0
  342. zscaler_sdk_python-1.9.30/zscaler/zpa/models/browser_protection.py +297 -0
  343. zscaler_sdk_python-1.9.30/zscaler/zpa/models/c2c_ip_ranges.py +110 -0
  344. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cbi_banner.py +62 -0
  345. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cbi_certificate.py +51 -0
  346. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cbi_profile.py +529 -0
  347. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cbi_region.py +47 -0
  348. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cbi_zpa_profile.py +121 -0
  349. zscaler_sdk_python-1.9.30/zscaler/zpa/models/certificates.py +95 -0
  350. zscaler_sdk_python-1.9.30/zscaler/zpa/models/client_settings.py +79 -0
  351. zscaler_sdk_python-1.9.30/zscaler/zpa/models/cloud_connector_groups.py +64 -0
  352. zscaler_sdk_python-1.9.30/zscaler/zpa/models/common.py +575 -0
  353. zscaler_sdk_python-1.9.30/zscaler/zpa/models/config_override_controller.py +89 -0
  354. zscaler_sdk_python-1.9.30/zscaler/zpa/models/customer_controller.py +132 -0
  355. zscaler_sdk_python-1.9.30/zscaler/zpa/models/customer_domain.py +74 -0
  356. zscaler_sdk_python-1.9.30/zscaler/zpa/models/customer_version_profile.py +152 -0
  357. zscaler_sdk_python-1.9.30/zscaler/zpa/models/emergency_access.py +74 -0
  358. zscaler_sdk_python-1.9.30/zscaler/zpa/models/enrollment_certificates.py +117 -0
  359. zscaler_sdk_python-1.9.30/zscaler/zpa/models/idp.py +225 -0
  360. zscaler_sdk_python-1.9.30/zscaler/zpa/models/lss.py +167 -0
  361. zscaler_sdk_python-1.9.30/zscaler/zpa/models/machine_groups.py +71 -0
  362. zscaler_sdk_python-1.9.30/zscaler/zpa/models/managed_browser_profile.py +134 -0
  363. zscaler_sdk_python-1.9.30/zscaler/zpa/models/microtenants.py +84 -0
  364. zscaler_sdk_python-1.9.30/zscaler/zpa/models/npn_client_controller.py +77 -0
  365. zscaler_sdk_python-1.9.30/zscaler/zpa/models/oauth2_user_code.py +67 -0
  366. zscaler_sdk_python-1.9.30/zscaler/zpa/models/policyset_controller_v1.py +314 -0
  367. zscaler_sdk_python-1.9.30/zscaler/zpa/models/policyset_controller_v2.py +304 -0
  368. zscaler_sdk_python-1.9.30/zscaler/zpa/models/posture_profiles.py +108 -0
  369. zscaler_sdk_python-1.9.30/zscaler/zpa/models/pra_approval.py +136 -0
  370. zscaler_sdk_python-1.9.30/zscaler/zpa/models/pra_console.py +157 -0
  371. zscaler_sdk_python-1.9.30/zscaler/zpa/models/pra_cred_pool_controller.py +78 -0
  372. zscaler_sdk_python-1.9.30/zscaler/zpa/models/pra_credential.py +69 -0
  373. zscaler_sdk_python-1.9.30/zscaler/zpa/models/pra_portal.py +110 -0
  374. zscaler_sdk_python-1.9.30/zscaler/zpa/models/private_cloud_controller.py +476 -0
  375. zscaler_sdk_python-1.9.30/zscaler/zpa/models/private_cloud_group.py +225 -0
  376. zscaler_sdk_python-1.9.30/zscaler/zpa/models/provisioning_keys.py +79 -0
  377. zscaler_sdk_python-1.9.30/zscaler/zpa/models/role_controller.py +388 -0
  378. zscaler_sdk_python-1.9.30/zscaler/zpa/models/saml_attributes.py +66 -0
  379. zscaler_sdk_python-1.9.30/zscaler/zpa/models/scim_attributes.py +81 -0
  380. zscaler_sdk_python-1.9.30/zscaler/zpa/models/scim_groups.py +60 -0
  381. zscaler_sdk_python-1.9.30/zscaler/zpa/models/segment_group.py +80 -0
  382. zscaler_sdk_python-1.9.30/zscaler/zpa/models/server_group.py +116 -0
  383. zscaler_sdk_python-1.9.30/zscaler/zpa/models/service_edge_groups.py +150 -0
  384. zscaler_sdk_python-1.9.30/zscaler/zpa/models/service_edge_schedule.py +57 -0
  385. zscaler_sdk_python-1.9.30/zscaler/zpa/models/service_edges.py +162 -0
  386. zscaler_sdk_python-1.9.30/zscaler/zpa/models/stepup_auth_level.py +81 -0
  387. zscaler_sdk_python-1.9.30/zscaler/zpa/models/tag_group.py +163 -0
  388. zscaler_sdk_python-1.9.30/zscaler/zpa/models/tag_key.py +116 -0
  389. zscaler_sdk_python-1.9.30/zscaler/zpa/models/tag_namespace.py +89 -0
  390. zscaler_sdk_python-1.9.30/zscaler/zpa/models/trusted_network.py +68 -0
  391. zscaler_sdk_python-1.9.30/zscaler/zpa/models/user_portal_aup.py +81 -0
  392. zscaler_sdk_python-1.9.30/zscaler/zpa/models/user_portal_controller.py +110 -0
  393. zscaler_sdk_python-1.9.30/zscaler/zpa/models/user_portal_link.py +138 -0
  394. zscaler_sdk_python-1.9.30/zscaler/zpa/npn_client_controller.py +97 -0
  395. zscaler_sdk_python-1.9.30/zscaler/zpa/oauth2_user_code.py +173 -0
  396. zscaler_sdk_python-1.9.30/zscaler/zpa/policies.py +4435 -0
  397. zscaler_sdk_python-1.9.30/zscaler/zpa/posture_profiles.py +149 -0
  398. zscaler_sdk_python-1.9.30/zscaler/zpa/pra_approval.py +389 -0
  399. zscaler_sdk_python-1.9.30/zscaler/zpa/pra_console.py +434 -0
  400. zscaler_sdk_python-1.9.30/zscaler/zpa/pra_credential.py +383 -0
  401. zscaler_sdk_python-1.9.30/zscaler/zpa/pra_credential_pool.py +342 -0
  402. zscaler_sdk_python-1.9.30/zscaler/zpa/pra_portal.py +291 -0
  403. zscaler_sdk_python-1.9.30/zscaler/zpa/private_cloud_controller.py +280 -0
  404. zscaler_sdk_python-1.9.30/zscaler/zpa/private_cloud_group.py +436 -0
  405. zscaler_sdk_python-1.9.30/zscaler/zpa/provisioning.py +456 -0
  406. zscaler_sdk_python-1.9.30/zscaler/zpa/role_controller.py +415 -0
  407. zscaler_sdk_python-1.9.30/zscaler/zpa/saml_attributes.py +325 -0
  408. zscaler_sdk_python-1.9.30/zscaler/zpa/scim_attributes.py +190 -0
  409. zscaler_sdk_python-1.9.30/zscaler/zpa/scim_groups.py +157 -0
  410. zscaler_sdk_python-1.9.30/zscaler/zpa/segment_groups.py +362 -0
  411. zscaler_sdk_python-1.9.30/zscaler/zpa/server_groups.py +352 -0
  412. zscaler_sdk_python-1.9.30/zscaler/zpa/servers.py +354 -0
  413. zscaler_sdk_python-1.9.30/zscaler/zpa/service_edge_group.py +356 -0
  414. zscaler_sdk_python-1.9.30/zscaler/zpa/service_edge_schedule.py +219 -0
  415. zscaler_sdk_python-1.9.30/zscaler/zpa/service_edges.py +266 -0
  416. zscaler_sdk_python-1.9.30/zscaler/zpa/stepup_auth_level.py +101 -0
  417. zscaler_sdk_python-1.9.30/zscaler/zpa/tag_group.py +262 -0
  418. zscaler_sdk_python-1.9.30/zscaler/zpa/tag_key.py +326 -0
  419. zscaler_sdk_python-1.9.30/zscaler/zpa/tag_namespace.py +352 -0
  420. zscaler_sdk_python-1.9.30/zscaler/zpa/trusted_networks.py +153 -0
  421. zscaler_sdk_python-1.9.30/zscaler/zpa/user_portal_aup.py +381 -0
  422. zscaler_sdk_python-1.9.30/zscaler/zpa/user_portal_controller.py +310 -0
  423. zscaler_sdk_python-1.9.30/zscaler/zpa/user_portal_link.py +464 -0
  424. zscaler_sdk_python-1.9.30/zscaler/zpa/workload_tag_group.py +86 -0
  425. zscaler_sdk_python-1.9.30/zscaler/zpa/zia_customer_config.py +262 -0
  426. zscaler_sdk_python-1.9.30/zscaler/zpa/zpa_service.py +448 -0
  427. zscaler_sdk_python-1.9.30/zscaler/ztb/alarms.py +432 -0
  428. zscaler_sdk_python-1.9.30/zscaler/ztb/api_key.py +189 -0
  429. zscaler_sdk_python-1.9.30/zscaler/ztb/app_connector_config.py +148 -0
  430. zscaler_sdk_python-1.9.30/zscaler/ztb/devices.py +459 -0
  431. zscaler_sdk_python-1.9.30/zscaler/ztb/groups_router.py +346 -0
  432. zscaler_sdk_python-1.9.30/zscaler/ztb/legacy.py +551 -0
  433. zscaler_sdk_python-1.9.30/zscaler/ztb/logs.py +84 -0
  434. zscaler_sdk_python-1.9.30/zscaler/ztb/models/alarms.py +197 -0
  435. zscaler_sdk_python-1.9.30/zscaler/ztb/models/api_key.py +92 -0
  436. zscaler_sdk_python-1.9.30/zscaler/ztb/models/common.py +68 -0
  437. zscaler_sdk_python-1.9.30/zscaler/ztb/models/ransomware_kill.py +138 -0
  438. zscaler_sdk_python-1.9.30/zscaler/ztb/policy_comments.py +203 -0
  439. zscaler_sdk_python-1.9.30/zscaler/ztb/ransomware_kill.py +254 -0
  440. zscaler_sdk_python-1.9.30/zscaler/ztb/site.py +509 -0
  441. zscaler_sdk_python-1.9.30/zscaler/ztb/site2site_vpn.py +352 -0
  442. zscaler_sdk_python-1.9.30/zscaler/ztb/template_router.py +410 -0
  443. zscaler_sdk_python-1.9.30/zscaler/ztw/account_details.py +301 -0
  444. zscaler_sdk_python-1.9.30/zscaler/ztw/account_groups.py +384 -0
  445. zscaler_sdk_python-1.9.30/zscaler/ztw/activation.py +116 -0
  446. zscaler_sdk_python-1.9.30/zscaler/ztw/admin_roles.py +331 -0
  447. zscaler_sdk_python-1.9.30/zscaler/ztw/admin_users.py +399 -0
  448. zscaler_sdk_python-1.9.30/zscaler/ztw/api_keys.py +138 -0
  449. zscaler_sdk_python-1.9.30/zscaler/ztw/discovery_service.py +110 -0
  450. zscaler_sdk_python-1.9.30/zscaler/ztw/ec_groups.py +334 -0
  451. zscaler_sdk_python-1.9.30/zscaler/ztw/forwarding_gateways.py +254 -0
  452. zscaler_sdk_python-1.9.30/zscaler/ztw/forwarding_rules.py +406 -0
  453. zscaler_sdk_python-1.9.30/zscaler/ztw/ip_destination_groups.py +410 -0
  454. zscaler_sdk_python-1.9.30/zscaler/ztw/ip_groups.py +257 -0
  455. zscaler_sdk_python-1.9.30/zscaler/ztw/ip_source_groups.py +261 -0
  456. zscaler_sdk_python-1.9.30/zscaler/ztw/legacy.py +539 -0
  457. zscaler_sdk_python-1.9.30/zscaler/ztw/location_management.py +275 -0
  458. zscaler_sdk_python-1.9.30/zscaler/ztw/location_template.py +398 -0
  459. zscaler_sdk_python-1.9.30/zscaler/ztw/models/account_groups.py +73 -0
  460. zscaler_sdk_python-1.9.30/zscaler/ztw/models/activation.py +59 -0
  461. zscaler_sdk_python-1.9.30/zscaler/ztw/models/admin_roles.py +99 -0
  462. zscaler_sdk_python-1.9.30/zscaler/ztw/models/admin_users.py +152 -0
  463. zscaler_sdk_python-1.9.30/zscaler/ztw/models/api_keys.py +93 -0
  464. zscaler_sdk_python-1.9.30/zscaler/ztw/models/common.py +118 -0
  465. zscaler_sdk_python-1.9.30/zscaler/ztw/models/discovery_service.py +79 -0
  466. zscaler_sdk_python-1.9.30/zscaler/ztw/models/ec_group_vm.py +123 -0
  467. zscaler_sdk_python-1.9.30/zscaler/ztw/models/ecgroup.py +459 -0
  468. zscaler_sdk_python-1.9.30/zscaler/ztw/models/forwarding_gateways.py +113 -0
  469. zscaler_sdk_python-1.9.30/zscaler/ztw/models/forwarding_rules.py +361 -0
  470. zscaler_sdk_python-1.9.30/zscaler/ztw/models/ip_destination_groups.py +74 -0
  471. zscaler_sdk_python-1.9.30/zscaler/ztw/models/ip_groups.py +60 -0
  472. zscaler_sdk_python-1.9.30/zscaler/ztw/models/ip_source_groups.py +60 -0
  473. zscaler_sdk_python-1.9.30/zscaler/ztw/models/location_management.py +257 -0
  474. zscaler_sdk_python-1.9.30/zscaler/ztw/models/location_templates.py +175 -0
  475. zscaler_sdk_python-1.9.30/zscaler/ztw/models/nw_service.py +97 -0
  476. zscaler_sdk_python-1.9.30/zscaler/ztw/models/nw_service_groups.py +58 -0
  477. zscaler_sdk_python-1.9.30/zscaler/ztw/models/provisioning_url.py +226 -0
  478. zscaler_sdk_python-1.9.30/zscaler/ztw/models/traffic_vpn_credentials.py +92 -0
  479. zscaler_sdk_python-1.9.30/zscaler/ztw/models/workload_groups.py +205 -0
  480. zscaler_sdk_python-1.9.30/zscaler/ztw/models/zpa_resources.py +63 -0
  481. zscaler_sdk_python-1.9.30/zscaler/ztw/nw_service.py +303 -0
  482. zscaler_sdk_python-1.9.30/zscaler/ztw/nw_service_groups.py +106 -0
  483. zscaler_sdk_python-1.9.30/zscaler/ztw/provisioning_url.py +295 -0
  484. zscaler_sdk_python-1.9.30/zscaler/ztw/public_cloud_info.py +668 -0
  485. zscaler_sdk_python-1.9.30/zscaler/ztw/workload_groups.py +91 -0
  486. zscaler_sdk_python-1.9.30/zscaler/ztw/ztw_service.py +219 -0
  487. zscaler_sdk_python-1.9.30/zscaler/zwa/audit_logs.py +135 -0
  488. zscaler_sdk_python-1.9.30/zscaler/zwa/dlp_incidents.py +645 -0
  489. zscaler_sdk_python-1.9.30/zscaler/zwa/legacy.py +282 -0
  490. zscaler_sdk_python-1.9.30/zscaler/zwa/models/audit_logs.py +137 -0
  491. zscaler_sdk_python-1.9.30/zscaler/zwa/models/change_history.py +63 -0
  492. zscaler_sdk_python-1.9.30/zscaler/zwa/models/common.py +714 -0
  493. zscaler_sdk_python-1.9.30/zscaler/zwa/models/generated_tickets.py +154 -0
  494. zscaler_sdk_python-1.9.30/zscaler/zwa/models/incident_details.py +205 -0
  495. zscaler_sdk_python-1.9.30/zscaler/zwa/models/incident_evidence.py +59 -0
  496. zscaler_sdk_python-1.9.30/zscaler/zwa/models/incident_group_search.py +61 -0
  497. zscaler_sdk_python-1.9.30/zscaler/zwa/models/incident_search.py +95 -0
  498. zscaler_sdk_python-1.9.30/zscaler/zwa/models/incident_trigger.py +47 -0
  499. zscaler_sdk_python-1.9.30/zscaler/zwa/zwa_service.py +41 -0
  500. zscaler_sdk_python-1.9.28/PKG-INFO +0 -1925
  501. zscaler_sdk_python-1.9.28/pyproject.toml +0 -110
  502. zscaler_sdk_python-1.9.28/zscaler/__init__.py +0 -35
  503. zscaler_sdk_python-1.9.28/zscaler/api_client.py +0 -95
  504. zscaler_sdk_python-1.9.28/zscaler/config/config_setter.py +0 -197
  505. zscaler_sdk_python-1.9.28/zscaler/config/config_validator.py +0 -179
  506. zscaler_sdk_python-1.9.28/zscaler/error_messages.py +0 -45
  507. zscaler_sdk_python-1.9.28/zscaler/errors/__init__.py +0 -25
  508. zscaler_sdk_python-1.9.28/zscaler/errors/graphql_error.py +0 -195
  509. zscaler_sdk_python-1.9.28/zscaler/errors/http_error.py +0 -14
  510. zscaler_sdk_python-1.9.28/zscaler/errors/response_checker.py +0 -90
  511. zscaler_sdk_python-1.9.28/zscaler/errors/zscaler_api_error.py +0 -70
  512. zscaler_sdk_python-1.9.28/zscaler/helpers.py +0 -441
  513. zscaler_sdk_python-1.9.28/zscaler/logger.py +0 -245
  514. zscaler_sdk_python-1.9.28/zscaler/oneapi_client.py +0 -708
  515. zscaler_sdk_python-1.9.28/zscaler/oneapi_collection.py +0 -21
  516. zscaler_sdk_python-1.9.28/zscaler/oneapi_http_client.py +0 -422
  517. zscaler_sdk_python-1.9.28/zscaler/oneapi_oauth_client.py +0 -540
  518. zscaler_sdk_python-1.9.28/zscaler/oneapi_object.py +0 -80
  519. zscaler_sdk_python-1.9.28/zscaler/oneapi_response.py +0 -445
  520. zscaler_sdk_python-1.9.28/zscaler/request_executor.py +0 -953
  521. zscaler_sdk_python-1.9.28/zscaler/types.py +0 -38
  522. zscaler_sdk_python-1.9.28/zscaler/utils.py +0 -1035
  523. zscaler_sdk_python-1.9.28/zscaler/zaiguard/legacy.py +0 -456
  524. zscaler_sdk_python-1.9.28/zscaler/zaiguard/models/policy_detection.py +0 -401
  525. zscaler_sdk_python-1.9.28/zscaler/zaiguard/policy_detection.py +0 -193
  526. zscaler_sdk_python-1.9.28/zscaler/zbi/custom_apps.py +0 -281
  527. zscaler_sdk_python-1.9.28/zscaler/zbi/models/custom_apps.py +0 -82
  528. zscaler_sdk_python-1.9.28/zscaler/zbi/models/report_configs.py +0 -185
  529. zscaler_sdk_python-1.9.28/zscaler/zbi/report_configs.py +0 -328
  530. zscaler_sdk_python-1.9.28/zscaler/zcc/_field_introspect.py +0 -181
  531. zscaler_sdk_python-1.9.28/zscaler/zcc/admin_user.py +0 -279
  532. zscaler_sdk_python-1.9.28/zscaler/zcc/application_profiles.py +0 -246
  533. zscaler_sdk_python-1.9.28/zscaler/zcc/company.py +0 -77
  534. zscaler_sdk_python-1.9.28/zscaler/zcc/custom_ip_base_apps.py +0 -124
  535. zscaler_sdk_python-1.9.28/zscaler/zcc/devices.py +0 -695
  536. zscaler_sdk_python-1.9.28/zscaler/zcc/entitlements.py +0 -189
  537. zscaler_sdk_python-1.9.28/zscaler/zcc/fail_open_policy.py +0 -143
  538. zscaler_sdk_python-1.9.28/zscaler/zcc/forwarding_profile.py +0 -175
  539. zscaler_sdk_python-1.9.28/zscaler/zcc/legacy.py +0 -515
  540. zscaler_sdk_python-1.9.28/zscaler/zcc/models/admin_roles.py +0 -164
  541. zscaler_sdk_python-1.9.28/zscaler/zcc/models/admin_user.py +0 -134
  542. zscaler_sdk_python-1.9.28/zscaler/zcc/models/application_profiles.py +0 -1014
  543. zscaler_sdk_python-1.9.28/zscaler/zcc/models/company_info.py +0 -1513
  544. zscaler_sdk_python-1.9.28/zscaler/zcc/models/custom_ip_base_apps.py +0 -126
  545. zscaler_sdk_python-1.9.28/zscaler/zcc/models/devices.py +0 -545
  546. zscaler_sdk_python-1.9.28/zscaler/zcc/models/forwardingprofile.py +0 -484
  547. zscaler_sdk_python-1.9.28/zscaler/zcc/models/manage_pass.py +0 -97
  548. zscaler_sdk_python-1.9.28/zscaler/zcc/models/predefined_ip_based_apps.py +0 -132
  549. zscaler_sdk_python-1.9.28/zscaler/zcc/models/process_based_apps.py +0 -77
  550. zscaler_sdk_python-1.9.28/zscaler/zcc/models/secrets_otp.py +0 -75
  551. zscaler_sdk_python-1.9.28/zscaler/zcc/models/secrets_passwords.py +0 -61
  552. zscaler_sdk_python-1.9.28/zscaler/zcc/models/webpolicy.py +0 -1145
  553. zscaler_sdk_python-1.9.28/zscaler/zcc/models/webprivacy.py +0 -85
  554. zscaler_sdk_python-1.9.28/zscaler/zcc/predefined_ip_based_apps.py +0 -124
  555. zscaler_sdk_python-1.9.28/zscaler/zcc/process_based_apps.py +0 -124
  556. zscaler_sdk_python-1.9.28/zscaler/zcc/secrets.py +0 -129
  557. zscaler_sdk_python-1.9.28/zscaler/zcc/trusted_networks.py +0 -251
  558. zscaler_sdk_python-1.9.28/zscaler/zcc/web_app_service.py +0 -87
  559. zscaler_sdk_python-1.9.28/zscaler/zcc/web_policy.py +0 -506
  560. zscaler_sdk_python-1.9.28/zscaler/zcc/web_privacy.py +0 -137
  561. zscaler_sdk_python-1.9.28/zscaler/zcc/zcc_service.py +0 -158
  562. zscaler_sdk_python-1.9.28/zscaler/zdx/admin.py +0 -176
  563. zscaler_sdk_python-1.9.28/zscaler/zdx/alerts.py +0 -333
  564. zscaler_sdk_python-1.9.28/zscaler/zdx/apps.py +0 -465
  565. zscaler_sdk_python-1.9.28/zscaler/zdx/devices.py +0 -857
  566. zscaler_sdk_python-1.9.28/zscaler/zdx/inventory.py +0 -181
  567. zscaler_sdk_python-1.9.28/zscaler/zdx/legacy.py +0 -448
  568. zscaler_sdk_python-1.9.28/zscaler/zdx/models/administration.py +0 -49
  569. zscaler_sdk_python-1.9.28/zscaler/zdx/models/alerts.py +0 -212
  570. zscaler_sdk_python-1.9.28/zscaler/zdx/models/application_users.py +0 -98
  571. zscaler_sdk_python-1.9.28/zscaler/zdx/models/applications.py +0 -257
  572. zscaler_sdk_python-1.9.28/zscaler/zdx/models/call_quality_metrics.py +0 -59
  573. zscaler_sdk_python-1.9.28/zscaler/zdx/models/common.py +0 -384
  574. zscaler_sdk_python-1.9.28/zscaler/zdx/models/devices.py +0 -919
  575. zscaler_sdk_python-1.9.28/zscaler/zdx/models/snapshot.py +0 -69
  576. zscaler_sdk_python-1.9.28/zscaler/zdx/models/software_inventory.py +0 -105
  577. zscaler_sdk_python-1.9.28/zscaler/zdx/models/troubleshooting.py +0 -448
  578. zscaler_sdk_python-1.9.28/zscaler/zdx/models/users.py +0 -95
  579. zscaler_sdk_python-1.9.28/zscaler/zdx/snapshot.py +0 -124
  580. zscaler_sdk_python-1.9.28/zscaler/zdx/troubleshooting.py +0 -659
  581. zscaler_sdk_python-1.9.28/zscaler/zdx/users.py +0 -170
  582. zscaler_sdk_python-1.9.28/zscaler/zdx/zdx_service.py +0 -95
  583. zscaler_sdk_python-1.9.28/zscaler/zeasm/findings.py +0 -253
  584. zscaler_sdk_python-1.9.28/zscaler/zeasm/lookalike_domains.py +0 -146
  585. zscaler_sdk_python-1.9.28/zscaler/zeasm/models/common.py +0 -53
  586. zscaler_sdk_python-1.9.28/zscaler/zeasm/models/findings.py +0 -169
  587. zscaler_sdk_python-1.9.28/zscaler/zeasm/models/lookalike_domains.py +0 -124
  588. zscaler_sdk_python-1.9.28/zscaler/zeasm/models/organizations.py +0 -60
  589. zscaler_sdk_python-1.9.28/zscaler/zeasm/organizations.py +0 -101
  590. zscaler_sdk_python-1.9.28/zscaler/zeasm/zeasm_service.py +0 -51
  591. zscaler_sdk_python-1.9.28/zscaler/zia/activate.py +0 -201
  592. zscaler_sdk_python-1.9.28/zscaler/zia/admin_roles.py +0 -645
  593. zscaler_sdk_python-1.9.28/zscaler/zia/admin_users.py +0 -496
  594. zscaler_sdk_python-1.9.28/zscaler/zia/advanced_settings.py +0 -207
  595. zscaler_sdk_python-1.9.28/zscaler/zia/alert_subscriptions.py +0 -298
  596. zscaler_sdk_python-1.9.28/zscaler/zia/apptotal.py +0 -217
  597. zscaler_sdk_python-1.9.28/zscaler/zia/atp_policy.py +0 -395
  598. zscaler_sdk_python-1.9.28/zscaler/zia/audit_logs.py +0 -154
  599. zscaler_sdk_python-1.9.28/zscaler/zia/authentication_settings.py +0 -293
  600. zscaler_sdk_python-1.9.28/zscaler/zia/bandwidth_classes.py +0 -337
  601. zscaler_sdk_python-1.9.28/zscaler/zia/bandwidth_control_rules.py +0 -417
  602. zscaler_sdk_python-1.9.28/zscaler/zia/browser_control_settings.py +0 -225
  603. zscaler_sdk_python-1.9.28/zscaler/zia/casb_dlp_rules.py +0 -676
  604. zscaler_sdk_python-1.9.28/zscaler/zia/casb_malware_rules.py +0 -403
  605. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_app_instances.py +0 -296
  606. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_applications.py +0 -196
  607. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_browser_isolation.py +0 -87
  608. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_firewall.py +0 -2282
  609. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_firewall_dns.py +0 -392
  610. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_firewall_ips.py +0 -384
  611. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_firewall_rules.py +0 -380
  612. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_nss.py +0 -694
  613. zscaler_sdk_python-1.9.28/zscaler/zia/cloud_to_cloud_ir.py +0 -310
  614. zscaler_sdk_python-1.9.28/zscaler/zia/cloudappcontrol.py +0 -758
  615. zscaler_sdk_python-1.9.28/zscaler/zia/custom_file_types.py +0 -333
  616. zscaler_sdk_python-1.9.28/zscaler/zia/dedicated_ip_gateways.py +0 -82
  617. zscaler_sdk_python-1.9.28/zscaler/zia/device_management.py +0 -205
  618. zscaler_sdk_python-1.9.28/zscaler/zia/dlp_dictionary.py +0 -521
  619. zscaler_sdk_python-1.9.28/zscaler/zia/dlp_engine.py +0 -400
  620. zscaler_sdk_python-1.9.28/zscaler/zia/dlp_resources.py +0 -617
  621. zscaler_sdk_python-1.9.28/zscaler/zia/dlp_templates.py +0 -293
  622. zscaler_sdk_python-1.9.28/zscaler/zia/dlp_web_rules.py +0 -437
  623. zscaler_sdk_python-1.9.28/zscaler/zia/dns_gatways.py +0 -325
  624. zscaler_sdk_python-1.9.28/zscaler/zia/end_user_notification.py +0 -162
  625. zscaler_sdk_python-1.9.28/zscaler/zia/file_type_control_rule.py +0 -413
  626. zscaler_sdk_python-1.9.28/zscaler/zia/forwarding_control.py +0 -422
  627. zscaler_sdk_python-1.9.28/zscaler/zia/ftp_control_policy.py +0 -139
  628. zscaler_sdk_python-1.9.28/zscaler/zia/gre_tunnel.py +0 -751
  629. zscaler_sdk_python-1.9.28/zscaler/zia/intermediate_certificates.py +0 -702
  630. zscaler_sdk_python-1.9.28/zscaler/zia/iot_report.py +0 -199
  631. zscaler_sdk_python-1.9.28/zscaler/zia/ipv6_config.py +0 -202
  632. zscaler_sdk_python-1.9.28/zscaler/zia/legacy.py +0 -1270
  633. zscaler_sdk_python-1.9.28/zscaler/zia/locations.py +0 -1215
  634. zscaler_sdk_python-1.9.28/zscaler/zia/malware_protection_policy.py +0 -496
  635. zscaler_sdk_python-1.9.28/zscaler/zia/mobile_threat_settings.py +0 -149
  636. zscaler_sdk_python-1.9.28/zscaler/zia/models/activation.py +0 -93
  637. zscaler_sdk_python-1.9.28/zscaler/zia/models/admin_roles.py +0 -134
  638. zscaler_sdk_python-1.9.28/zscaler/zia/models/admin_users.py +0 -332
  639. zscaler_sdk_python-1.9.28/zscaler/zia/models/advanced_settings.py +0 -318
  640. zscaler_sdk_python-1.9.28/zscaler/zia/models/alert_subscriptions.py +0 -85
  641. zscaler_sdk_python-1.9.28/zscaler/zia/models/apptotal.py +0 -258
  642. zscaler_sdk_python-1.9.28/zscaler/zia/models/authentication_settings.py +0 -92
  643. zscaler_sdk_python-1.9.28/zscaler/zia/models/bandwidth_classes.py +0 -78
  644. zscaler_sdk_python-1.9.28/zscaler/zia/models/bandwidth_control_rules.py +0 -137
  645. zscaler_sdk_python-1.9.28/zscaler/zia/models/browser_control_settings.py +0 -137
  646. zscaler_sdk_python-1.9.28/zscaler/zia/models/casb_dlp_rules.py +0 -366
  647. zscaler_sdk_python-1.9.28/zscaler/zia/models/casb_malware_rules.py +0 -127
  648. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_app_instances.py +0 -140
  649. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_app_policy.py +0 -53
  650. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_browser_isolation.py +0 -52
  651. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_app_services.py +0 -49
  652. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -65
  653. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -226
  654. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -55
  655. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -52
  656. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_nw_service.py +0 -142
  657. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -53
  658. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_rules.py +0 -250
  659. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_source_groups.py +0 -60
  660. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_firewall_time_windows.py +0 -56
  661. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_nss.py +0 -612
  662. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloud_to_cloud_ir.py +0 -436
  663. zscaler_sdk_python-1.9.28/zscaler/zia/models/cloudappcontrol.py +0 -265
  664. zscaler_sdk_python-1.9.28/zscaler/zia/models/common.py +0 -176
  665. zscaler_sdk_python-1.9.28/zscaler/zia/models/custom_file_types.py +0 -64
  666. zscaler_sdk_python-1.9.28/zscaler/zia/models/dedicated_ip_gateways.py +0 -103
  667. zscaler_sdk_python-1.9.28/zscaler/zia/models/device_groups.py +0 -58
  668. zscaler_sdk_python-1.9.28/zscaler/zia/models/devices.py +0 -66
  669. zscaler_sdk_python-1.9.28/zscaler/zia/models/dlp_dictionary.py +0 -245
  670. zscaler_sdk_python-1.9.28/zscaler/zia/models/dlp_engine.py +0 -91
  671. zscaler_sdk_python-1.9.28/zscaler/zia/models/dlp_resources.py +0 -199
  672. zscaler_sdk_python-1.9.28/zscaler/zia/models/dlp_templates.py +0 -67
  673. zscaler_sdk_python-1.9.28/zscaler/zia/models/dlp_web_rules.py +0 -242
  674. zscaler_sdk_python-1.9.28/zscaler/zia/models/dns_gateways.py +0 -109
  675. zscaler_sdk_python-1.9.28/zscaler/zia/models/endusernotification.py +0 -156
  676. zscaler_sdk_python-1.9.28/zscaler/zia/models/forwarding_control_policy.py +0 -253
  677. zscaler_sdk_python-1.9.28/zscaler/zia/models/ftp_control_policy.py +0 -62
  678. zscaler_sdk_python-1.9.28/zscaler/zia/models/gre_recommended_list.py +0 -74
  679. zscaler_sdk_python-1.9.28/zscaler/zia/models/gre_tunnel_info.py +0 -70
  680. zscaler_sdk_python-1.9.28/zscaler/zia/models/gre_tunnels.py +0 -136
  681. zscaler_sdk_python-1.9.28/zscaler/zia/models/gre_vips.py +0 -167
  682. zscaler_sdk_python-1.9.28/zscaler/zia/models/intermediate_certificates.py +0 -158
  683. zscaler_sdk_python-1.9.28/zscaler/zia/models/iotreport.py +0 -106
  684. zscaler_sdk_python-1.9.28/zscaler/zia/models/ipv6_config.py +0 -107
  685. zscaler_sdk_python-1.9.28/zscaler/zia/models/location_group.py +0 -82
  686. zscaler_sdk_python-1.9.28/zscaler/zia/models/location_management.py +0 -388
  687. zscaler_sdk_python-1.9.28/zscaler/zia/models/malware_protection_settings.py +0 -102
  688. zscaler_sdk_python-1.9.28/zscaler/zia/models/mobile_threat_settings.py +0 -92
  689. zscaler_sdk_python-1.9.28/zscaler/zia/models/nat_control_policy.py +0 -225
  690. zscaler_sdk_python-1.9.28/zscaler/zia/models/nss_servers.py +0 -64
  691. zscaler_sdk_python-1.9.28/zscaler/zia/models/organization_information.py +0 -453
  692. zscaler_sdk_python-1.9.28/zscaler/zia/models/pac_files.py +0 -205
  693. zscaler_sdk_python-1.9.28/zscaler/zia/models/proxies.py +0 -99
  694. zscaler_sdk_python-1.9.28/zscaler/zia/models/proxy_gateways.py +0 -82
  695. zscaler_sdk_python-1.9.28/zscaler/zia/models/risk_profiles.py +0 -175
  696. zscaler_sdk_python-1.9.28/zscaler/zia/models/rule_labels.py +0 -81
  697. zscaler_sdk_python-1.9.28/zscaler/zia/models/saas_security_api.py +0 -321
  698. zscaler_sdk_python-1.9.28/zscaler/zia/models/sandbox.py +0 -86
  699. zscaler_sdk_python-1.9.28/zscaler/zia/models/security_policy_settings.py +0 -50
  700. zscaler_sdk_python-1.9.28/zscaler/zia/models/shadow_it_report.py +0 -317
  701. zscaler_sdk_python-1.9.28/zscaler/zia/models/ssl_inspection_rules.py +0 -503
  702. zscaler_sdk_python-1.9.28/zscaler/zia/models/subclouds.py +0 -281
  703. zscaler_sdk_python-1.9.28/zscaler/zia/models/system_audit.py +0 -285
  704. zscaler_sdk_python-1.9.28/zscaler/zia/models/tenancy_restriction_profile.py +0 -98
  705. zscaler_sdk_python-1.9.28/zscaler/zia/models/time_intervals.py +0 -63
  706. zscaler_sdk_python-1.9.28/zscaler/zia/models/traffic_capture.py +0 -263
  707. zscaler_sdk_python-1.9.28/zscaler/zia/models/traffic_datacenters.py +0 -115
  708. zscaler_sdk_python-1.9.28/zscaler/zia/models/traffic_dc_exclusions.py +0 -76
  709. zscaler_sdk_python-1.9.28/zscaler/zia/models/traffic_static_ip.py +0 -89
  710. zscaler_sdk_python-1.9.28/zscaler/zia/models/traffic_vpn_credentials.py +0 -89
  711. zscaler_sdk_python-1.9.28/zscaler/zia/models/url_filtering_rules.py +0 -218
  712. zscaler_sdk_python-1.9.28/zscaler/zia/models/urlcategory.py +0 -195
  713. zscaler_sdk_python-1.9.28/zscaler/zia/models/user_management.py +0 -182
  714. zscaler_sdk_python-1.9.28/zscaler/zia/models/vzen_clusters.py +0 -79
  715. zscaler_sdk_python-1.9.28/zscaler/zia/models/vzen_nodes.py +0 -100
  716. zscaler_sdk_python-1.9.28/zscaler/zia/models/workload_groups.py +0 -204
  717. zscaler_sdk_python-1.9.28/zscaler/zia/models/zpa_gateway.py +0 -90
  718. zscaler_sdk_python-1.9.28/zscaler/zia/nat_control_policy.py +0 -363
  719. zscaler_sdk_python-1.9.28/zscaler/zia/nss_servers.py +0 -304
  720. zscaler_sdk_python-1.9.28/zscaler/zia/organization_information.py +0 -168
  721. zscaler_sdk_python-1.9.28/zscaler/zia/pac_files.py +0 -623
  722. zscaler_sdk_python-1.9.28/zscaler/zia/policy_export.py +0 -94
  723. zscaler_sdk_python-1.9.28/zscaler/zia/proxies.py +0 -414
  724. zscaler_sdk_python-1.9.28/zscaler/zia/remote_assistance.py +0 -142
  725. zscaler_sdk_python-1.9.28/zscaler/zia/risk_profiles.py +0 -457
  726. zscaler_sdk_python-1.9.28/zscaler/zia/rule_labels.py +0 -327
  727. zscaler_sdk_python-1.9.28/zscaler/zia/saas_security_api.py +0 -371
  728. zscaler_sdk_python-1.9.28/zscaler/zia/sandbox.py +0 -358
  729. zscaler_sdk_python-1.9.28/zscaler/zia/sandbox_rules.py +0 -356
  730. zscaler_sdk_python-1.9.28/zscaler/zia/security_policy_settings.py +0 -262
  731. zscaler_sdk_python-1.9.28/zscaler/zia/shadow_it_report.py +0 -569
  732. zscaler_sdk_python-1.9.28/zscaler/zia/ssl_inspection_rules.py +0 -366
  733. zscaler_sdk_python-1.9.28/zscaler/zia/sub_clouds.py +0 -177
  734. zscaler_sdk_python-1.9.28/zscaler/zia/system_audit.py +0 -85
  735. zscaler_sdk_python-1.9.28/zscaler/zia/tenancy_restriction_profile.py +0 -395
  736. zscaler_sdk_python-1.9.28/zscaler/zia/time_intervals.py +0 -284
  737. zscaler_sdk_python-1.9.28/zscaler/zia/traffic_capture.py +0 -575
  738. zscaler_sdk_python-1.9.28/zscaler/zia/traffic_datacenters.py +0 -355
  739. zscaler_sdk_python-1.9.28/zscaler/zia/traffic_extranet.py +0 -307
  740. zscaler_sdk_python-1.9.28/zscaler/zia/traffic_static_ip.py +0 -397
  741. zscaler_sdk_python-1.9.28/zscaler/zia/traffic_vpn_credentials.py +0 -366
  742. zscaler_sdk_python-1.9.28/zscaler/zia/url_categories.py +0 -763
  743. zscaler_sdk_python-1.9.28/zscaler/zia/url_filtering.py +0 -551
  744. zscaler_sdk_python-1.9.28/zscaler/zia/user_management.py +0 -1002
  745. zscaler_sdk_python-1.9.28/zscaler/zia/vzen_clusters.py +0 -334
  746. zscaler_sdk_python-1.9.28/zscaler/zia/vzen_nodes.py +0 -376
  747. zscaler_sdk_python-1.9.28/zscaler/zia/workload_groups.py +0 -383
  748. zscaler_sdk_python-1.9.28/zscaler/zia/zia_service.py +0 -728
  749. zscaler_sdk_python-1.9.28/zscaler/zia/zpa_gateway.py +0 -353
  750. zscaler_sdk_python-1.9.28/zscaler/zid/api_client.py +0 -531
  751. zscaler_sdk_python-1.9.28/zscaler/zid/groups.py +0 -614
  752. zscaler_sdk_python-1.9.28/zscaler/zid/models/api_client.py +0 -318
  753. zscaler_sdk_python-1.9.28/zscaler/zid/models/common.py +0 -89
  754. zscaler_sdk_python-1.9.28/zscaler/zid/models/groups.py +0 -172
  755. zscaler_sdk_python-1.9.28/zscaler/zid/models/resource_servers.py +0 -200
  756. zscaler_sdk_python-1.9.28/zscaler/zid/models/user_entitlement.py +0 -149
  757. zscaler_sdk_python-1.9.28/zscaler/zid/models/users.py +0 -165
  758. zscaler_sdk_python-1.9.28/zscaler/zid/resource_servers.py +0 -157
  759. zscaler_sdk_python-1.9.28/zscaler/zid/user_entitlement.py +0 -123
  760. zscaler_sdk_python-1.9.28/zscaler/zid/users.py +0 -402
  761. zscaler_sdk_python-1.9.28/zscaler/zid/zid_service.py +0 -70
  762. zscaler_sdk_python-1.9.28/zscaler/zins/cyber_security.py +0 -230
  763. zscaler_sdk_python-1.9.28/zscaler/zins/firewall.py +0 -295
  764. zscaler_sdk_python-1.9.28/zscaler/zins/iot.py +0 -145
  765. zscaler_sdk_python-1.9.28/zscaler/zins/models/__init__.py +0 -19
  766. zscaler_sdk_python-1.9.28/zscaler/zins/models/common.py +0 -284
  767. zscaler_sdk_python-1.9.28/zscaler/zins/models/inputs.py +0 -476
  768. zscaler_sdk_python-1.9.28/zscaler/zins/saas_security.py +0 -142
  769. zscaler_sdk_python-1.9.28/zscaler/zins/shadow_it.py +0 -339
  770. zscaler_sdk_python-1.9.28/zscaler/zins/web_traffic.py +0 -488
  771. zscaler_sdk_python-1.9.28/zscaler/zins/zins_service.py +0 -78
  772. zscaler_sdk_python-1.9.28/zscaler/zms/agent_groups.py +0 -212
  773. zscaler_sdk_python-1.9.28/zscaler/zms/agents.py +0 -289
  774. zscaler_sdk_python-1.9.28/zscaler/zms/app_catalog.py +0 -141
  775. zscaler_sdk_python-1.9.28/zscaler/zms/app_zones.py +0 -132
  776. zscaler_sdk_python-1.9.28/zscaler/zms/models/__init__.py +0 -19
  777. zscaler_sdk_python-1.9.28/zscaler/zms/models/common.py +0 -447
  778. zscaler_sdk_python-1.9.28/zscaler/zms/models/inputs.py +0 -535
  779. zscaler_sdk_python-1.9.28/zscaler/zms/nonces.py +0 -216
  780. zscaler_sdk_python-1.9.28/zscaler/zms/policy_rules.py +0 -230
  781. zscaler_sdk_python-1.9.28/zscaler/zms/resource_groups.py +0 -315
  782. zscaler_sdk_python-1.9.28/zscaler/zms/resources.py +0 -287
  783. zscaler_sdk_python-1.9.28/zscaler/zms/tags.py +0 -339
  784. zscaler_sdk_python-1.9.28/zscaler/zms/zms_service.py +0 -105
  785. zscaler_sdk_python-1.9.28/zscaler/zpa/admin_sso_controller.py +0 -128
  786. zscaler_sdk_python-1.9.28/zscaler/zpa/administrator_controller.py +0 -304
  787. zscaler_sdk_python-1.9.28/zscaler/zpa/api_keys.py +0 -307
  788. zscaler_sdk_python-1.9.28/zscaler/zpa/app_connector_groups.py +0 -470
  789. zscaler_sdk_python-1.9.28/zscaler/zpa/app_connector_schedule.py +0 -219
  790. zscaler_sdk_python-1.9.28/zscaler/zpa/app_connectors.py +0 -281
  791. zscaler_sdk_python-1.9.28/zscaler/zpa/app_protection.py +0 -1199
  792. zscaler_sdk_python-1.9.28/zscaler/zpa/app_segment_by_type.py +0 -147
  793. zscaler_sdk_python-1.9.28/zscaler/zpa/app_segments_ba.py +0 -530
  794. zscaler_sdk_python-1.9.28/zscaler/zpa/app_segments_ba_v2.py +0 -486
  795. zscaler_sdk_python-1.9.28/zscaler/zpa/app_segments_inspection.py +0 -516
  796. zscaler_sdk_python-1.9.28/zscaler/zpa/app_segments_pra.py +0 -483
  797. zscaler_sdk_python-1.9.28/zscaler/zpa/application_segment.py +0 -1247
  798. zscaler_sdk_python-1.9.28/zscaler/zpa/branch_connector_group.py +0 -161
  799. zscaler_sdk_python-1.9.28/zscaler/zpa/branch_connectors.py +0 -94
  800. zscaler_sdk_python-1.9.28/zscaler/zpa/browser_protection.py +0 -230
  801. zscaler_sdk_python-1.9.28/zscaler/zpa/c2c_ip_ranges.py +0 -402
  802. zscaler_sdk_python-1.9.28/zscaler/zpa/cbi_banner.py +0 -256
  803. zscaler_sdk_python-1.9.28/zscaler/zpa/cbi_certificate.py +0 -249
  804. zscaler_sdk_python-1.9.28/zscaler/zpa/cbi_profile.py +0 -383
  805. zscaler_sdk_python-1.9.28/zscaler/zpa/cbi_region.py +0 -77
  806. zscaler_sdk_python-1.9.28/zscaler/zpa/cbi_zpa_profile.py +0 -135
  807. zscaler_sdk_python-1.9.28/zscaler/zpa/certificates.py +0 -358
  808. zscaler_sdk_python-1.9.28/zscaler/zpa/client_settings.py +0 -204
  809. zscaler_sdk_python-1.9.28/zscaler/zpa/cloud_connector_controller.py +0 -93
  810. zscaler_sdk_python-1.9.28/zscaler/zpa/cloud_connector_groups.py +0 -193
  811. zscaler_sdk_python-1.9.28/zscaler/zpa/config_override_controller.py +0 -217
  812. zscaler_sdk_python-1.9.28/zscaler/zpa/customer_controller.py +0 -71
  813. zscaler_sdk_python-1.9.28/zscaler/zpa/customer_domain.py +0 -170
  814. zscaler_sdk_python-1.9.28/zscaler/zpa/customer_dr_tool.py +0 -94
  815. zscaler_sdk_python-1.9.28/zscaler/zpa/customer_version_profile.py +0 -183
  816. zscaler_sdk_python-1.9.28/zscaler/zpa/emergency_access.py +0 -346
  817. zscaler_sdk_python-1.9.28/zscaler/zpa/enrollment_certificates.py +0 -447
  818. zscaler_sdk_python-1.9.28/zscaler/zpa/extranet_resource.py +0 -93
  819. zscaler_sdk_python-1.9.28/zscaler/zpa/idp.py +0 -148
  820. zscaler_sdk_python-1.9.28/zscaler/zpa/legacy.py +0 -1045
  821. zscaler_sdk_python-1.9.28/zscaler/zpa/location_controller.py +0 -229
  822. zscaler_sdk_python-1.9.28/zscaler/zpa/lss.py +0 -569
  823. zscaler_sdk_python-1.9.28/zscaler/zpa/machine_groups.py +0 -205
  824. zscaler_sdk_python-1.9.28/zscaler/zpa/managed_browser_profile.py +0 -99
  825. zscaler_sdk_python-1.9.28/zscaler/zpa/microtenants.py +0 -394
  826. zscaler_sdk_python-1.9.28/zscaler/zpa/models/administrator_controller.py +0 -147
  827. zscaler_sdk_python-1.9.28/zscaler/zpa/models/api_keys.py +0 -103
  828. zscaler_sdk_python-1.9.28/zscaler/zpa/models/app_connector_groups.py +0 -297
  829. zscaler_sdk_python-1.9.28/zscaler/zpa/models/app_connector_schedule.py +0 -56
  830. zscaler_sdk_python-1.9.28/zscaler/zpa/models/app_connectors.py +0 -177
  831. zscaler_sdk_python-1.9.28/zscaler/zpa/models/app_protection_predefined_controls.py +0 -221
  832. zscaler_sdk_python-1.9.28/zscaler/zpa/models/app_protection_profile.py +0 -826
  833. zscaler_sdk_python-1.9.28/zscaler/zpa/models/application_segment.py +0 -1129
  834. zscaler_sdk_python-1.9.28/zscaler/zpa/models/application_segment_lb.py +0 -96
  835. zscaler_sdk_python-1.9.28/zscaler/zpa/models/application_servers.py +0 -63
  836. zscaler_sdk_python-1.9.28/zscaler/zpa/models/branch_connectors.py +0 -93
  837. zscaler_sdk_python-1.9.28/zscaler/zpa/models/browser_protection.py +0 -296
  838. zscaler_sdk_python-1.9.28/zscaler/zpa/models/c2c_ip_ranges.py +0 -109
  839. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cbi_banner.py +0 -61
  840. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cbi_certificate.py +0 -50
  841. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cbi_profile.py +0 -528
  842. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cbi_region.py +0 -46
  843. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cbi_zpa_profile.py +0 -120
  844. zscaler_sdk_python-1.9.28/zscaler/zpa/models/certificates.py +0 -94
  845. zscaler_sdk_python-1.9.28/zscaler/zpa/models/client_settings.py +0 -80
  846. zscaler_sdk_python-1.9.28/zscaler/zpa/models/cloud_connector_groups.py +0 -63
  847. zscaler_sdk_python-1.9.28/zscaler/zpa/models/common.py +0 -574
  848. zscaler_sdk_python-1.9.28/zscaler/zpa/models/config_override_controller.py +0 -88
  849. zscaler_sdk_python-1.9.28/zscaler/zpa/models/customer_controller.py +0 -131
  850. zscaler_sdk_python-1.9.28/zscaler/zpa/models/customer_domain.py +0 -73
  851. zscaler_sdk_python-1.9.28/zscaler/zpa/models/customer_version_profile.py +0 -151
  852. zscaler_sdk_python-1.9.28/zscaler/zpa/models/emergency_access.py +0 -73
  853. zscaler_sdk_python-1.9.28/zscaler/zpa/models/enrollment_certificates.py +0 -116
  854. zscaler_sdk_python-1.9.28/zscaler/zpa/models/idp.py +0 -224
  855. zscaler_sdk_python-1.9.28/zscaler/zpa/models/lss.py +0 -166
  856. zscaler_sdk_python-1.9.28/zscaler/zpa/models/machine_groups.py +0 -70
  857. zscaler_sdk_python-1.9.28/zscaler/zpa/models/managed_browser_profile.py +0 -135
  858. zscaler_sdk_python-1.9.28/zscaler/zpa/models/microtenants.py +0 -83
  859. zscaler_sdk_python-1.9.28/zscaler/zpa/models/npn_client_controller.py +0 -78
  860. zscaler_sdk_python-1.9.28/zscaler/zpa/models/oauth2_user_code.py +0 -67
  861. zscaler_sdk_python-1.9.28/zscaler/zpa/models/policyset_controller_v1.py +0 -313
  862. zscaler_sdk_python-1.9.28/zscaler/zpa/models/policyset_controller_v2.py +0 -303
  863. zscaler_sdk_python-1.9.28/zscaler/zpa/models/posture_profiles.py +0 -107
  864. zscaler_sdk_python-1.9.28/zscaler/zpa/models/pra_approval.py +0 -135
  865. zscaler_sdk_python-1.9.28/zscaler/zpa/models/pra_console.py +0 -156
  866. zscaler_sdk_python-1.9.28/zscaler/zpa/models/pra_cred_pool_controller.py +0 -77
  867. zscaler_sdk_python-1.9.28/zscaler/zpa/models/pra_credential.py +0 -68
  868. zscaler_sdk_python-1.9.28/zscaler/zpa/models/pra_portal.py +0 -109
  869. zscaler_sdk_python-1.9.28/zscaler/zpa/models/private_cloud_controller.py +0 -475
  870. zscaler_sdk_python-1.9.28/zscaler/zpa/models/private_cloud_group.py +0 -224
  871. zscaler_sdk_python-1.9.28/zscaler/zpa/models/provisioning_keys.py +0 -78
  872. zscaler_sdk_python-1.9.28/zscaler/zpa/models/role_controller.py +0 -387
  873. zscaler_sdk_python-1.9.28/zscaler/zpa/models/saml_attributes.py +0 -65
  874. zscaler_sdk_python-1.9.28/zscaler/zpa/models/scim_attributes.py +0 -80
  875. zscaler_sdk_python-1.9.28/zscaler/zpa/models/scim_groups.py +0 -59
  876. zscaler_sdk_python-1.9.28/zscaler/zpa/models/segment_group.py +0 -79
  877. zscaler_sdk_python-1.9.28/zscaler/zpa/models/server_group.py +0 -115
  878. zscaler_sdk_python-1.9.28/zscaler/zpa/models/service_edge_groups.py +0 -149
  879. zscaler_sdk_python-1.9.28/zscaler/zpa/models/service_edge_schedule.py +0 -56
  880. zscaler_sdk_python-1.9.28/zscaler/zpa/models/service_edges.py +0 -161
  881. zscaler_sdk_python-1.9.28/zscaler/zpa/models/stepup_auth_level.py +0 -82
  882. zscaler_sdk_python-1.9.28/zscaler/zpa/models/tag_group.py +0 -162
  883. zscaler_sdk_python-1.9.28/zscaler/zpa/models/tag_key.py +0 -115
  884. zscaler_sdk_python-1.9.28/zscaler/zpa/models/tag_namespace.py +0 -88
  885. zscaler_sdk_python-1.9.28/zscaler/zpa/models/trusted_network.py +0 -67
  886. zscaler_sdk_python-1.9.28/zscaler/zpa/models/user_portal_aup.py +0 -83
  887. zscaler_sdk_python-1.9.28/zscaler/zpa/models/user_portal_controller.py +0 -109
  888. zscaler_sdk_python-1.9.28/zscaler/zpa/models/user_portal_link.py +0 -137
  889. zscaler_sdk_python-1.9.28/zscaler/zpa/npn_client_controller.py +0 -96
  890. zscaler_sdk_python-1.9.28/zscaler/zpa/oauth2_user_code.py +0 -174
  891. zscaler_sdk_python-1.9.28/zscaler/zpa/policies.py +0 -4434
  892. zscaler_sdk_python-1.9.28/zscaler/zpa/posture_profiles.py +0 -148
  893. zscaler_sdk_python-1.9.28/zscaler/zpa/pra_approval.py +0 -389
  894. zscaler_sdk_python-1.9.28/zscaler/zpa/pra_console.py +0 -433
  895. zscaler_sdk_python-1.9.28/zscaler/zpa/pra_credential.py +0 -382
  896. zscaler_sdk_python-1.9.28/zscaler/zpa/pra_credential_pool.py +0 -341
  897. zscaler_sdk_python-1.9.28/zscaler/zpa/pra_portal.py +0 -290
  898. zscaler_sdk_python-1.9.28/zscaler/zpa/private_cloud_controller.py +0 -279
  899. zscaler_sdk_python-1.9.28/zscaler/zpa/private_cloud_group.py +0 -435
  900. zscaler_sdk_python-1.9.28/zscaler/zpa/provisioning.py +0 -455
  901. zscaler_sdk_python-1.9.28/zscaler/zpa/role_controller.py +0 -415
  902. zscaler_sdk_python-1.9.28/zscaler/zpa/saml_attributes.py +0 -324
  903. zscaler_sdk_python-1.9.28/zscaler/zpa/scim_attributes.py +0 -189
  904. zscaler_sdk_python-1.9.28/zscaler/zpa/scim_groups.py +0 -156
  905. zscaler_sdk_python-1.9.28/zscaler/zpa/segment_groups.py +0 -361
  906. zscaler_sdk_python-1.9.28/zscaler/zpa/server_groups.py +0 -351
  907. zscaler_sdk_python-1.9.28/zscaler/zpa/servers.py +0 -353
  908. zscaler_sdk_python-1.9.28/zscaler/zpa/service_edge_group.py +0 -355
  909. zscaler_sdk_python-1.9.28/zscaler/zpa/service_edge_schedule.py +0 -219
  910. zscaler_sdk_python-1.9.28/zscaler/zpa/service_edges.py +0 -265
  911. zscaler_sdk_python-1.9.28/zscaler/zpa/stepup_auth_level.py +0 -100
  912. zscaler_sdk_python-1.9.28/zscaler/zpa/tag_group.py +0 -262
  913. zscaler_sdk_python-1.9.28/zscaler/zpa/tag_key.py +0 -325
  914. zscaler_sdk_python-1.9.28/zscaler/zpa/tag_namespace.py +0 -351
  915. zscaler_sdk_python-1.9.28/zscaler/zpa/trusted_networks.py +0 -152
  916. zscaler_sdk_python-1.9.28/zscaler/zpa/user_portal_aup.py +0 -380
  917. zscaler_sdk_python-1.9.28/zscaler/zpa/user_portal_controller.py +0 -309
  918. zscaler_sdk_python-1.9.28/zscaler/zpa/user_portal_link.py +0 -464
  919. zscaler_sdk_python-1.9.28/zscaler/zpa/workload_tag_group.py +0 -85
  920. zscaler_sdk_python-1.9.28/zscaler/zpa/zia_customer_config.py +0 -262
  921. zscaler_sdk_python-1.9.28/zscaler/zpa/zpa_service.py +0 -447
  922. zscaler_sdk_python-1.9.28/zscaler/ztb/alarms.py +0 -434
  923. zscaler_sdk_python-1.9.28/zscaler/ztb/api_key.py +0 -190
  924. zscaler_sdk_python-1.9.28/zscaler/ztb/app_connector_config.py +0 -152
  925. zscaler_sdk_python-1.9.28/zscaler/ztb/devices.py +0 -459
  926. zscaler_sdk_python-1.9.28/zscaler/ztb/groups_router.py +0 -346
  927. zscaler_sdk_python-1.9.28/zscaler/ztb/legacy.py +0 -550
  928. zscaler_sdk_python-1.9.28/zscaler/ztb/logs.py +0 -84
  929. zscaler_sdk_python-1.9.28/zscaler/ztb/models/alarms.py +0 -196
  930. zscaler_sdk_python-1.9.28/zscaler/ztb/models/api_key.py +0 -92
  931. zscaler_sdk_python-1.9.28/zscaler/ztb/models/common.py +0 -66
  932. zscaler_sdk_python-1.9.28/zscaler/ztb/models/ransomware_kill.py +0 -138
  933. zscaler_sdk_python-1.9.28/zscaler/ztb/policy_comments.py +0 -203
  934. zscaler_sdk_python-1.9.28/zscaler/ztb/ransomware_kill.py +0 -254
  935. zscaler_sdk_python-1.9.28/zscaler/ztb/site.py +0 -510
  936. zscaler_sdk_python-1.9.28/zscaler/ztb/site2site_vpn.py +0 -353
  937. zscaler_sdk_python-1.9.28/zscaler/ztb/template_router.py +0 -410
  938. zscaler_sdk_python-1.9.28/zscaler/ztw/account_details.py +0 -300
  939. zscaler_sdk_python-1.9.28/zscaler/ztw/account_groups.py +0 -383
  940. zscaler_sdk_python-1.9.28/zscaler/ztw/activation.py +0 -117
  941. zscaler_sdk_python-1.9.28/zscaler/ztw/admin_roles.py +0 -330
  942. zscaler_sdk_python-1.9.28/zscaler/ztw/admin_users.py +0 -398
  943. zscaler_sdk_python-1.9.28/zscaler/ztw/api_keys.py +0 -137
  944. zscaler_sdk_python-1.9.28/zscaler/ztw/discovery_service.py +0 -112
  945. zscaler_sdk_python-1.9.28/zscaler/ztw/ec_groups.py +0 -333
  946. zscaler_sdk_python-1.9.28/zscaler/ztw/forwarding_gateways.py +0 -253
  947. zscaler_sdk_python-1.9.28/zscaler/ztw/forwarding_rules.py +0 -405
  948. zscaler_sdk_python-1.9.28/zscaler/ztw/ip_destination_groups.py +0 -409
  949. zscaler_sdk_python-1.9.28/zscaler/ztw/ip_groups.py +0 -256
  950. zscaler_sdk_python-1.9.28/zscaler/ztw/ip_source_groups.py +0 -260
  951. zscaler_sdk_python-1.9.28/zscaler/ztw/legacy.py +0 -537
  952. zscaler_sdk_python-1.9.28/zscaler/ztw/location_management.py +0 -274
  953. zscaler_sdk_python-1.9.28/zscaler/ztw/location_template.py +0 -397
  954. zscaler_sdk_python-1.9.28/zscaler/ztw/models/account_groups.py +0 -73
  955. zscaler_sdk_python-1.9.28/zscaler/ztw/models/activation.py +0 -58
  956. zscaler_sdk_python-1.9.28/zscaler/ztw/models/admin_roles.py +0 -98
  957. zscaler_sdk_python-1.9.28/zscaler/ztw/models/admin_users.py +0 -151
  958. zscaler_sdk_python-1.9.28/zscaler/ztw/models/api_keys.py +0 -92
  959. zscaler_sdk_python-1.9.28/zscaler/ztw/models/common.py +0 -117
  960. zscaler_sdk_python-1.9.28/zscaler/ztw/models/discovery_service.py +0 -80
  961. zscaler_sdk_python-1.9.28/zscaler/ztw/models/ec_group_vm.py +0 -122
  962. zscaler_sdk_python-1.9.28/zscaler/ztw/models/ecgroup.py +0 -458
  963. zscaler_sdk_python-1.9.28/zscaler/ztw/models/forwarding_gateways.py +0 -112
  964. zscaler_sdk_python-1.9.28/zscaler/ztw/models/forwarding_rules.py +0 -360
  965. zscaler_sdk_python-1.9.28/zscaler/ztw/models/ip_destination_groups.py +0 -73
  966. zscaler_sdk_python-1.9.28/zscaler/ztw/models/ip_groups.py +0 -59
  967. zscaler_sdk_python-1.9.28/zscaler/ztw/models/ip_source_groups.py +0 -59
  968. zscaler_sdk_python-1.9.28/zscaler/ztw/models/location_management.py +0 -256
  969. zscaler_sdk_python-1.9.28/zscaler/ztw/models/location_templates.py +0 -174
  970. zscaler_sdk_python-1.9.28/zscaler/ztw/models/nw_service.py +0 -96
  971. zscaler_sdk_python-1.9.28/zscaler/ztw/models/nw_service_groups.py +0 -57
  972. zscaler_sdk_python-1.9.28/zscaler/ztw/models/provisioning_url.py +0 -225
  973. zscaler_sdk_python-1.9.28/zscaler/ztw/models/traffic_vpn_credentials.py +0 -91
  974. zscaler_sdk_python-1.9.28/zscaler/ztw/models/workload_groups.py +0 -204
  975. zscaler_sdk_python-1.9.28/zscaler/ztw/models/zpa_resources.py +0 -62
  976. zscaler_sdk_python-1.9.28/zscaler/ztw/nw_service.py +0 -303
  977. zscaler_sdk_python-1.9.28/zscaler/ztw/nw_service_groups.py +0 -105
  978. zscaler_sdk_python-1.9.28/zscaler/ztw/provisioning_url.py +0 -294
  979. zscaler_sdk_python-1.9.28/zscaler/ztw/public_cloud_info.py +0 -670
  980. zscaler_sdk_python-1.9.28/zscaler/ztw/workload_groups.py +0 -90
  981. zscaler_sdk_python-1.9.28/zscaler/ztw/ztw_service.py +0 -220
  982. zscaler_sdk_python-1.9.28/zscaler/zwa/audit_logs.py +0 -134
  983. zscaler_sdk_python-1.9.28/zscaler/zwa/dlp_incidents.py +0 -644
  984. zscaler_sdk_python-1.9.28/zscaler/zwa/legacy.py +0 -280
  985. zscaler_sdk_python-1.9.28/zscaler/zwa/models/audit_logs.py +0 -136
  986. zscaler_sdk_python-1.9.28/zscaler/zwa/models/change_history.py +0 -62
  987. zscaler_sdk_python-1.9.28/zscaler/zwa/models/common.py +0 -713
  988. zscaler_sdk_python-1.9.28/zscaler/zwa/models/generated_tickets.py +0 -153
  989. zscaler_sdk_python-1.9.28/zscaler/zwa/models/incident_details.py +0 -204
  990. zscaler_sdk_python-1.9.28/zscaler/zwa/models/incident_evidence.py +0 -58
  991. zscaler_sdk_python-1.9.28/zscaler/zwa/models/incident_group_search.py +0 -60
  992. zscaler_sdk_python-1.9.28/zscaler/zwa/models/incident_search.py +0 -94
  993. zscaler_sdk_python-1.9.28/zscaler/zwa/models/incident_trigger.py +0 -46
  994. zscaler_sdk_python-1.9.28/zscaler/zwa/zwa_service.py +0 -41
  995. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/LICENSE.md +0 -0
  996. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/README.md +0 -0
  997. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/cache/__init__.py +0 -0
  998. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/cache/cache.py +0 -0
  999. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/cache/no_op_cache.py +0 -0
  1000. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/cache/zscaler_cache.py +0 -0
  1001. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/config/__init__.py +0 -0
  1002. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/constants.py +0 -0
  1003. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/errors/error.py +0 -0
  1004. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/exceptions/__init__.py +0 -0
  1005. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/exceptions/exceptions.py +0 -0
  1006. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ratelimiter/__init__.py +0 -0
  1007. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ratelimiter/ratelimiter.py +0 -0
  1008. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/user_agent.py +0 -0
  1009. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zaiguard/__init__.py +0 -0
  1010. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zaiguard/models/__init__.py +0 -0
  1011. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zaiguard/zaiguard_service.py +0 -0
  1012. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zbi/__init__.py +0 -0
  1013. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zbi/models/__init__.py +0 -0
  1014. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zbi/reports.py +0 -0
  1015. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zbi/zbi_service.py +0 -0
  1016. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/__init__.py +0 -0
  1017. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/_serialize.py +0 -0
  1018. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/models/failopenpolicy.py +0 -0
  1019. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/models/trustednetworks.py +0 -0
  1020. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/models/webappservice.py +0 -0
  1021. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  1022. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  1023. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zdx/__init__.py +0 -0
  1024. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zeasm/__init__.py +0 -0
  1025. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zeasm/models/__init__.py +0 -0
  1026. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/__init__.py +0 -0
  1027. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/__init__.py +0 -0
  1028. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  1029. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
  1030. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/filetyperules.py +0 -0
  1031. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/remoteassistance.py +0 -0
  1032. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/sandboxrules.py +0 -0
  1033. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/traffic_extranet.py +0 -0
  1034. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  1035. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zid/__init__.py +0 -0
  1036. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zins/__init__.py +0 -0
  1037. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zins/models/enums.py +0 -0
  1038. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zms/__init__.py +0 -0
  1039. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zms/models/enums.py +0 -0
  1040. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zpa/__init__.py +0 -0
  1041. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zpa/models/cloud_connector_controller.py +0 -0
  1042. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zpa/models/customer_dr_tool.py +0 -0
  1043. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zpa/models/zia_customer_config.py +0 -0
  1044. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/__init__.py +0 -0
  1045. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/__init__.py +0 -0
  1046. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/app_connector_config.py +0 -0
  1047. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/devices.py +0 -0
  1048. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/groups_router.py +0 -0
  1049. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/logs.py +0 -0
  1050. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/policy_comments.py +0 -0
  1051. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/site.py +0 -0
  1052. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/site2site_vpn.py +0 -0
  1053. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/models/template_router.py +0 -0
  1054. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztb/ztb_service.py +0 -0
  1055. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztw/__init__.py +0 -0
  1056. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/ztw/models/public_cloud_info.py +0 -0
  1057. {zscaler_sdk_python-1.9.28 → zscaler_sdk_python-1.9.30}/zscaler/zwa/__init__.py +0 -0
@@ -0,0 +1,1925 @@
1
+ Metadata-Version: 2.1
2
+ Name: zscaler-sdk-python
3
+ Version: 1.9.30
4
+ Summary: Official Python SDK for the Zscaler Products
5
+ Home-page: https://github.com/zscaler/zscaler-sdk-python
6
+ License: MIT
7
+ Keywords: zscaler,sdk,zpa,zia,zdx,zcc,ztw,zwa,zid,zidentity
8
+ Author: Zscaler, Inc.
9
+ Author-email: devrel@zscaler.com
10
+ Requires-Python: >=3.10,<4.0
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Security
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Provides-Extra: dev
22
+ Requires-Dist: PyJWT (>=2.10.1)
23
+ Requires-Dist: aenum (>=3.1.11)
24
+ Requires-Dist: arrow (>=1.3.0)
25
+ Requires-Dist: cryptography (>=45.0.2)
26
+ Requires-Dist: jmespath (>=1.0.0)
27
+ Requires-Dist: jwcrypto (>=1.5.6)
28
+ Requires-Dist: pydash (>=8.0.3)
29
+ Requires-Dist: python-box (>=7.3.0)
30
+ Requires-Dist: python-dateutil (>=2.9.0)
31
+ Requires-Dist: pytz (>=2024.2)
32
+ Requires-Dist: pyyaml (>=6.0.0)
33
+ Requires-Dist: requests (>=2.32.3)
34
+ Requires-Dist: urllib3 (>=2.6.0)
35
+ Project-URL: Bug Tracker, https://github.com/zscaler/zscaler-sdk-python/issues
36
+ Project-URL: Documentation, https://zscaler-sdk-python.readthedocs.io
37
+ Project-URL: Repository, https://github.com/zscaler/zscaler-sdk-python
38
+ Description-Content-Type: text/markdown
39
+
40
+ # Official Python SDK for the Zscaler Products
41
+
42
+ [![PyPI - Downloads](https://img.shields.io/pypi/dw/zscaler-sdk-python)](https://pypistats.org/packages/zscaler-sdk-python)
43
+ [![License](https://img.shields.io/github/license/zscaler/zscaler-sdk-python.svg)](https://github.com/zscaler/zscaler-sdk-python)
44
+ [![Documentation Status](https://readthedocs.org/projects/zscaler-sdk-python/badge/?version=latest)](https://zscaler-sdk-python.readthedocs.io/en/latest/?badge=latest)
45
+ [![Latest version released on PyPi](https://img.shields.io/pypi/v/zscaler-sdk-python.svg)](https://pypi.org/project/zscaler-sdk-python)
46
+ [![PyPI pyversions](https://img.shields.io/pypi/pyversions/zscaler-sdk-python.svg)](https://pypi.python.org/pypi/zscaler-sdk-python/)
47
+ [![codecov](https://codecov.io/gh/zscaler/zscaler-sdk-python/graph/badge.svg?token=56B53PITU8)](https://codecov.io/gh/zscaler/zscaler-sdk-python)
48
+ [![Automation Hub](https://img.shields.io/badge/automation-hub-blue)](https://automate.zscaler.com/docs/tools/sdk-documentation/sdk-getting-started)
49
+ [![Zscaler Community](https://img.shields.io/badge/zscaler-community-blue)](https://community.zscaler.com/)
50
+
51
+ ## Support Disclaimer
52
+
53
+ -> **Disclaimer:** Please refer to our [General Support Statement](docsrc/zs/guides/support.rst) before proceeding with the use of this provider. You can also refer to our [troubleshooting guide](docsrc/zs/guides/troubleshooting.rst) for guidance on typical problems.
54
+
55
+ > ## 🚧 Heads up: Zscaler Python SDK **v2.x is now in Public Preview / Beta**
56
+ >
57
+ > A new, **data-driven** version of the Zscaler Python SDK — generated directly from the official Zscaler OpenAPI specifications — is now available as a pre-release (`2.0.0bN`) on PyPI.
58
+ >
59
+ > - **v1.x (this README) is the current GA release** and remains the recommended choice for production workloads.
60
+ > - **v2.x is OneAPI-only.** Legacy per-product authentication (ZIA `username`/`password`/`api_key`, ZPA `client_id`/`client_secret`, etc.) is **not** supported and will **not** be added.
61
+ > - **Limited product coverage in v2.x today:** ZIA, ZDX, and ZIdentity. Other products are still being migrated.
62
+ > - **Migrating existing v1.x code to v2.x will introduce breaking changes** — import paths, method signatures, and models all change.
63
+ > - **Install the beta** with `pip install --pre --upgrade "zscaler-sdk-python>=2.0.0b1"` (the default `pip install zscaler-sdk-python` continues to install the latest v1.x GA release).
64
+ >
65
+ > **Get started with v2.x:** [Zscaler Automation Hub – Python SDK](https://automate.zscaler.com/docs/tools/sdk-documentation/sdk-getting-started) · **Migrate from v1.x:** [`UPGRADE_GUIDE.md`](./UPGRADE_GUIDE.md)
66
+
67
+ # Official Zscaler Python SDK Overview
68
+
69
+ * [Release status](#release-status)
70
+ * [Migrating to v2.x (Beta)](#migrating-to-v2x-beta)
71
+ * [Breaking Changes & Migration Guide to Multi-Client SDK](#breaking-changes--migration-guide-to-multi-client-sdk)
72
+ * [Need help?](#need-help)
73
+ * [Getting Started](#getting-started)
74
+ - [Building the SDK](#building-the-sdk)
75
+ * [Usage guide](#usage-guide)
76
+ * [Authentication](#authentication)
77
+ * [Zscaler OneAPI New Framework](#zscaler-oneapi-new-framework)
78
+ * [Zscaler Legacy API Framework](#zscaler-legacy-api-framework)
79
+ * [Configuration reference](#configuration-reference)
80
+ * [Pagination](#pagination)
81
+ * [Client-Side Filtering with JMESPath](#client-side-filtering-with-jmespath)
82
+ * [Contributing](#contributing)
83
+
84
+ The Zscaler SDK for Python includes functionality to accelerate development via [Python](https://www.python.org/). This SDK can be
85
+ used in your server-side code to interact with the Zscaler API platform across multiple products such as:
86
+
87
+ * [ZPA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zpa)
88
+ * [ZIA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zia)
89
+ * [ZDX API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zdx)
90
+ * [ZCC API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcc)
91
+ * [ZIdentity (zid)](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zid)
92
+ * [ZTW API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcloudconnector)
93
+ * [ZTB API (Zero Trust Branch)](https://help.zscaler.com/)
94
+ * [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
95
+ * [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
96
+ * [Z-Insights - ZINS](https://help.zscaler.com/zscaler-analytics/getting-started) — GraphQL Analytics API
97
+ * [ZMS - Zscaler Microsegmentation](https://help.zscaler.com/legacy-apis/using-zscaler-microsegmentation-api) — GraphQL Microsegmentation API
98
+ * [Business Insights](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/bi)
99
+
100
+ This SDK is designed to support the new Zscaler API framework [OneAPI](https://automate.zscaler.com/docs/getting-started/getting-started)
101
+ via a single OAuth2 HTTP client. The SDK is also backwards compatible with the previous
102
+ Zscaler API framework, and each package is supported by an individual and robust HTTP client
103
+ designed to handle failures on different levels by performing intelligent retries.
104
+
105
+ ## Release Status
106
+
107
+ This library uses semantic versioning and updates are posted in ([release notes](/docs/guides/release-notes.md)) |
108
+
109
+ | Version | Status |
110
+ | ------- | ---------------------------------------------------------------------------- |
111
+ | 0.x | :warning: Beta Release (Retired) |
112
+ | 1.x | :heavy_check_mark: General Availability (recommended for production) |
113
+ | 2.x | :test_tube: Public Preview / Beta — OneAPI only, limited product coverage |
114
+
115
+ The latest release can always be found on the ([releases page](github-releases))
116
+
117
+ > Requires Python version 3.10 or higher.
118
+ Zscaler SDK for Python is compatible with Python 3.10, 3.11, and 3.12.
119
+
120
+ ## Migrating to v2.x (Beta)
121
+
122
+ The next major version of this SDK — `zscaler-sdk-python` **2.x** — is a complete redesign and is now available as a **public preview / beta** pre-release on PyPI. v2.x is **data-driven**: every model, request, and response is generated from the official Zscaler OpenAPI specifications, so the SDK stays in lock-step with the public API contract.
123
+
124
+ > ⚠️ **Important — please read before adopting v2.x:**
125
+ >
126
+ > - **v2.x is in public preview / beta.** APIs, models, and import paths may change before GA. Do not use v2.x for production workloads.
127
+ > - **v2.x supports OneAPI exclusively.** Legacy per-product authentication helpers (`LegacyZIAClient`, `LegacyZPAClient`, `LegacyZCCClient`, `LegacyZDXClient`, `LegacyZIdentityClient`, `LegacyZTWClient`, etc.) are **not** available in v2.x and will **not** be added. Your tenant must be on [Zidentity](https://help.zscaler.com/zidentity/what-zidentity) before you can adopt v2.x.
128
+ > - **Limited product coverage today.** The v2.x beta currently supports **ZIA, ZDX, and ZIdentity**. Other Zscaler products (ZPA, ZCC, ZTW, ZTB, ZWA, …) remain available on **v1.x** and will be migrated to v2.x progressively.
129
+ > - **Breaking changes.** Migrating existing v1.x code to v2.x will require code changes — import paths, method signatures, models, and error classes all change.
130
+
131
+ **Install the v2.x beta**
132
+
133
+ ```bash
134
+ pip install --pre --upgrade "zscaler-sdk-python>=2.0.0b1"
135
+ ```
136
+
137
+ > The default `pip install zscaler-sdk-python` continues to install the latest **v1.x GA** release. Pre-releases (`2.0.0bN`) must be requested explicitly with `--pre` or by pinning a specific beta version.
138
+
139
+ **Where to go next**
140
+
141
+ - 📖 **Full v2.x documentation, getting-started, and per-product API reference:** [Zscaler Automation Hub – Python SDK](https://automate.zscaler.com/docs/tools/sdk-documentation/sdk-getting-started)
142
+ - 🔁 **Migration guide from v1.x to v2.x:** [`UPGRADE_GUIDE.md`](./UPGRADE_GUIDE.md)
143
+ - 🔐 **OneAPI / Zidentity onboarding:** [OneAPI Getting Started](https://automate.zscaler.com/docs/getting-started/getting-started)
144
+
145
+ If your code depends on a product that is **not yet** in the v2.x beta — or if your tenant has **not** been migrated to Zidentity — continue to use the **v1.x** documentation in the rest of this README. v1.x will keep receiving bug fixes and security updates until v2.x reaches General Availability with full product parity.
146
+
147
+ ## Need help?
148
+
149
+ If you run into problems, please refer to our [General Support Statement](docs/guides/support.md) before proceeding with the use of this SDK. You can also refer to our [troubleshooting guide](docs/guides/troubleshooting.md) for guidance on typical problems. You can also raise an issue via ([github issues page](https://github.com/zscaler/zscaler-sdk-go/issues))
150
+
151
+ - Ask questions on the [Zenith Community][zenith]
152
+ - Post [issues on GitHub][github-issues] (for code errors)
153
+ - Support [customer support portal][zscaler-support]
154
+
155
+ ## Breaking Changes & Migration Guide to Multi-Client SDK
156
+
157
+ This SDK is a complete redesign from the older `zscaler-sdk-python` or `pyzscaler packages`. If you've used either of those, please review the following before upgrading:
158
+
159
+ ### What's Changed
160
+
161
+ | Feature | Legacy SDK (Restfly + Box) | New SDK (OneAPI + Pythonic Dict) |
162
+ |---------------------------------|--------------------------------------------------|--------------------------------------------------|
163
+ | **Data Structure** | Used `Python-Box` objects (dot notation) | Uses native Python `dict` with `snake_case` |
164
+ | **HTTP Engine** | [Restfly](https://github.com/tdunham/restfly) | Custom HTTP executor with retries, caching, etc.|
165
+ | **Auth Model** | One set of credentials per service | Unified OAuth2 (Zidentity) with scoped access |
166
+ | **Multi-Service Support** | Separate SDKs or config per service | Unified client with `.zia`, `.zpa`, `.zcc` |
167
+ | **Pagination** | Inconsistent or manual | Built-in with `resp.has_next()` and `resp.next()` |
168
+ | **Error Handling** | Raw HTTP exceptions | Returns `(result, response, error)` tuples |
169
+ | **Models** | Custom models + `.attribute` access | Plain Python dict access: `object["field"]` |
170
+ | **Return Types** | Box-style nested objects | Pure JSON-serializable `dict` responses |
171
+
172
+ ### Legacy SDK Examples
173
+
174
+ ```py
175
+ # Old SDK (Pyzscaler / Restfly)
176
+ client = ZIAClientHelper(api_key="...", cloud="...")
177
+
178
+ users = client.users.list()
179
+ print(users[0].name) # Box-style access
180
+ ```
181
+
182
+ ### New SDK Example
183
+ ```py
184
+ from zscaler import ZscalerClient
185
+
186
+ config = {
187
+ "clientId": "...",
188
+ "clientSecret": "...",
189
+ "vanityDomain": "...",
190
+ "cloud": "beta", # (Optional)
191
+ }
192
+
193
+ with ZscalerClient(config) as client:
194
+ users, _, err = client.zia.user_management.list_users()
195
+ if err:
196
+ print("Error:", err)
197
+ else:
198
+ print(users[0]["name"]) # Pythonic dict access
199
+ ```
200
+
201
+ ### Migration Summary
202
+
203
+ If you're upgrading from a previous version:
204
+
205
+ * Refactor any `.attribute` access to dictionary access: `user["name"]` instead of `user.name`
206
+ * Update authentication to use OAuth2 via OneAPI:
207
+ Choose either:
208
+ ```py
209
+ client = ZscalerClient({
210
+ "client_id": "...",
211
+ "client_secret": "...",
212
+ "vanity_domain": "..."
213
+ })
214
+ ```
215
+
216
+ or (for JWT private key auth):
217
+ ```py
218
+ client = ZscalerClient({
219
+ "client_id": "...",
220
+ "private_key": "...",
221
+ "vanity_domain": "..."
222
+ })
223
+ ```
224
+
225
+ * If your tenant is still `NOT` migrated to Zidentity:
226
+ You can still use this SDK by instantiating the respective legacy API client directly. See section: [Zscaler Legacy API Framework](#zscaler-legacy-api-framework)
227
+ ```py
228
+ from zscaler.oneapi_client import LegacyZIAClient
229
+
230
+ def main():
231
+ with LegacyZIAClient(config) as client:
232
+ users, _, _ = client.user_management.list_users()
233
+ ...
234
+ ```
235
+
236
+ * All data returned from the SDK is pure `dict` — no Box, no attribute-style access — just native, Pythonic, serializable output.
237
+
238
+ ## Getting started
239
+
240
+ To install the Zscaler Python SDK in your project:
241
+
242
+ ```sh
243
+ pip install zscaler-sdk-python
244
+ ```
245
+
246
+ ## Building the SDK
247
+
248
+ In most cases, you won't need to build the SDK from source. If you want to build it yourself, you'll need these prerequisites:
249
+
250
+ - Clone the repo
251
+ - Install `poetry`
252
+ - Run `poetry build` from the root of the project
253
+ - Run `pip install dist/zscalerdist/zscaler_sdk_python-x.x.x.tar.gz`
254
+
255
+ ### You'll also need
256
+
257
+ * An administrator account in the Zscaler products you want to interact with.
258
+ * [OneAPI](https://automate.zscaler.com/docs/getting-started/getting-started): If you are using the OneAPI entrypoint you must have a API Client created in the [Zidentity platform](https://help.zscaler.com/zidentity/about-api-clients)
259
+ * Legacy Framework: If using the legacy API framework you must have API Keys credentials in the the respective Zscaler cloud products.
260
+ * For more information on getting started with Zscaler APIs visit one of the following links:
261
+
262
+ * [OneAPI](https://automate.zscaler.com/docs/getting-started/getting-started)
263
+ * [ZPA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zpa)
264
+ * [ZIA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zia)
265
+ * [ZDX API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zdx)
266
+ * [ZCC API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcc)
267
+ * [ZIdentity (ZID)](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zid)
268
+ * [ZTW API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcloudconnector)
269
+ * [ZTB API (Zero Trust Branch)](https://help.zscaler.com/)
270
+ * [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
271
+ * [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
272
+ * [Z-Insights - ZINS](https://help.zscaler.com/zscaler-analytics/getting-started) — GraphQL Analytics API
273
+ * [ZMS - Zscaler Microsegmentation](https://help.zscaler.com/legacy-apis/using-zscaler-microsegmentation-api) — GraphQL Microsegmentation API
274
+ * [Zscaler AI Guard API](https://help.zscaler.com/ai-guard)
275
+ * [Business Insights](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/bi)
276
+
277
+ ## Usage guide
278
+
279
+ These examples will help you understand how to use this library.
280
+
281
+ Once you initialize a specific service client, you can call methods to make requests to the Zscaler API. Each Zscaler Service has its own package and is grouped by the API endpoint they belong to. For example, ZPA methods that call the [Application Segment API][application-segment-api-docs] are organized under [the zscaler/zpa resource (zscaler.zpa.application_segment.py)][application_segment]. The same logic applies to all other services.
282
+
283
+ **NOTE:** Zscaler APIs DO NOT support Asynchronous I/O calls, which made its debut in Python 3.5 and is powered by the `asyncio` library which provides avenues to produce concurrent code.
284
+
285
+ ## Authentication
286
+
287
+ The latest versions => 0.20.0 of this SDK provides dual API client capability and can be used to interact both with new Zscaler [OneAPI](https://automate.zscaler.com/docs/getting-started/getting-started) framework and the legacy API platform.
288
+
289
+ If your Zscaler tenant has not been migrated to the new Zscaler [Zidentity platform](https://help.zscaler.com/zidentity/what-zidentity), you must use the respective Legacy API client described in the following section: [Zscaler Legacy API Framework](#zscaler-legacy-api-framework)
290
+
291
+ :warning: **Caution**: Zscaler does not recommend hard-coding credentials into arguments, as they can be exposed in plain text in version control systems. Use environment variables instead.
292
+
293
+ ## Zscaler OneAPI New Framework
294
+
295
+ As of the publication of SDK version => 1.7.x, OneAPI is available for programmatic interaction with the following products:
296
+
297
+ * [ZPA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zpa)
298
+ * [ZIA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zia)
299
+ * [ZDX API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zdx)
300
+ * [ZCC API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcc)
301
+ * [ZIdentity (zid)](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zid)
302
+ * [ZTW API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcloudconnector)
303
+ * [ZTB API (Zero Trust Branch)](https://help.zscaler.com/)
304
+ * [ZWA API](https://help.zscaler.com/workflow-automation/getting-started-workflow-automation-api)
305
+ * [EASM API](https://hhttps://help.zscaler.com/easm/easm-api/api-developer-reference-guide/reference-guide)
306
+ * [Z-Insights - ZINS](https://help.zscaler.com/zscaler-analytics/getting-started) — GraphQL Analytics API
307
+ * [ZMS - Zscaler Microsegmentation](https://help.zscaler.com/legacy-apis/using-zscaler-microsegmentation-api) — GraphQL Microsegmentation API
308
+ * [Zscaler AI Guard API](https://help.zscaler.com/ai-guard)
309
+ * [Business Insights](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/bi)
310
+
311
+ **NOTE** All other products such as Zscaler Cloud Connector (ZTW) and Zscaler Digital Experience (ZDX) are supported only via the legacy authentication method described in this README.
312
+
313
+ ### OneAPI (API Client Scope)
314
+
315
+ OneAPI Resources are automatically created within the ZIdentity Admin UI based on the RBAC Roles
316
+ applicable to APIs within the various products. For example, in ZIA, navigate to `Administration -> Role Management` and select `Add API Role`.
317
+
318
+ Once this role has been saved, return to the ZIdentity Admin UI and from the Integration menu
319
+ select API Resources. Click the `View` icon to the right of Zscaler APIs and under the ZIA
320
+ dropdown you will see the newly created Role. In the event a newly created role is not seen in the
321
+ ZIdentity Admin UI a `Sync Now` button is provided in the API Resources menu which will initiate an
322
+ on-demand sync of newly created roles.
323
+
324
+ **WARNING**: Attention Government customers. OneAPI and Zidentity is not currently supported for the following ZIA clouds: `zscalergov` and `zscalerten` or ZPA `GOV`, and `GOVUS`.
325
+
326
+ ### Default Environment Variables
327
+
328
+ You can provide credentials via the `ZSCALER_CLIENT_ID`, `ZSCALER_CLIENT_SECRET`, `ZSCALER_VANITY_DOMAIN`, `ZSCALER_CLOUD`, `ZSCALER_PARTNER_ID` environment variables, representing your Zidentity OneAPI credentials `clientId`, `clientSecret`, `vanityDomain`, `cloud` and `partnerId` respectively.
329
+
330
+ | Argument | Description | Environment variable |
331
+ |--------------|-------------|-------------------|
332
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
333
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
334
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
335
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
336
+ | `cloud` | _(String)_ The host and basePath for the cloud services API is `$api.<cloud_name>.zsapi.net`.| `ZSCALER_CLOUD` |
337
+ | `partnerId` | _(String)_ Optional partner ID. When provided, the SDK automatically includes the `x-partner-id` header in all API requests.| `ZSCALER_PARTNER_ID` |
338
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
339
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
340
+
341
+ ### Alternative OneAPI Cloud Environments
342
+
343
+ OneAPI supports authentication and can interact with alternative Zscaler enviornments i.e `beta`, `alpha` etc. To authenticate to these environments you must provide the following values:
344
+
345
+ | Argument | Description | Environment variable |
346
+ |--------------|-------------|-------------------|
347
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
348
+ | `cloud` | _(String)_ The host and basePath for the cloud services API is `$api.<cloud_name>.zsapi.net`.| `ZSCALER_CLOUD` |
349
+
350
+ For example: Authenticating to Zscaler Beta environment:
351
+
352
+ ```sh
353
+ export ZSCALER_VANITY_DOMAIN="acme"
354
+ export ZSCALER_CLOUD="beta"
355
+ ```
356
+
357
+ **Note 1**: The attribute `cloud` or environment variable `ZSCALER_CLOUD` is optional and only required when authenticating to an alternative Zidentity cloud environment.
358
+
359
+ **Note 2**: By default this SDK will send the authentication request and subsequent API calls to the default base URL.
360
+
361
+ **Note 3**: Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`.The following cloud environments are supported:
362
+
363
+ * `zscaler`
364
+ * `zscalerone`
365
+ * `zscalertwo`
366
+ * `zscalerthree`
367
+ * `zscloud`
368
+ * `zscalerbeta`
369
+ * `zscalergov`
370
+ * `zscalerten`
371
+ * `zspreview`
372
+
373
+ ### Authenticating to Zscaler Private Access (ZPA)
374
+
375
+ The authentication to Zscaler Private Access (ZPA) via the OneAPI framework, requires the extra attribute called `customerId` and optionally the attributes `microtenantId` and `partnerId`.
376
+
377
+ | Argument | Description | Environment variable |
378
+ |--------------|-------------|-------------------|
379
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
380
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
381
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
382
+ | `customerId` | _(String)_ The ZPA tenant ID found under Configuration & Control > Public API > API Keys menu in the ZPA console.| `ZPA_CUSTOMER_ID` |
383
+ | `microtenantId` | _(String)_ The ZPA microtenant ID found in the respective microtenant instance under Configuration & Control > Public API > API Keys menu in the ZPA console.| `ZPA_MICROTENANT_ID` |
384
+ | `partnerId` | _(String)_ Optional partner ID. When provided, the SDK automatically includes the `x-partner-id` header in all API requests.| `ZSCALER_PARTNER_ID` |
385
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
386
+ | `cloud`
387
+
388
+ ### Initialize OneAPI OAuth 2.0 Client
389
+
390
+ #### OneAPI Client ID and Client Secret Authentication
391
+
392
+ Construct a client instance by passing your Zidentity `clientId`, `clientSecret` and `vanityDomain`:
393
+
394
+ ```py
395
+ from zscaler import ZscalerClient
396
+
397
+ config = {
398
+ "clientId": '{yourClientId}',
399
+ "clientSecret": '{yourClientSecret}',
400
+ "vanityDomain": '{yourvanityDomain}',
401
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
402
+ "customerId": "", # Optional parameter. Required only when using ZPA
403
+ "microtenantId": "", # Optional parameter. Required only when using ZPA with Microtenant
404
+ "partnerId": "", # Optional parameter. When provided, automatically includes x-partner-id header in all requests
405
+ "logging": {"enabled": False, "verbose": False},
406
+ }
407
+
408
+ def main():
409
+ with ZscalerClient(config) as client:
410
+ idp_id = "72058304855015574"
411
+ query_params = {'page': '1', 'page_size': '100'}
412
+ groups, resp, err = client.zpa.scim_groups.list_scim_groups(idp_id=idp_id, query_params=query_params)
413
+ if err:
414
+ print(f"Error listing SCIM groups: {err}")
415
+ return
416
+ if groups:
417
+ print(f"Processing {len(groups)} groups:")
418
+ for group in groups:
419
+ print(group)
420
+
421
+ try:
422
+ resp.next()
423
+ except StopIteration:
424
+ print("No more groups to retrieve.")
425
+
426
+ if __name__ == "__main__":
427
+ main()
428
+ ```
429
+
430
+ #### OneAPI Client ID and Private Key Authentication
431
+
432
+ ```py
433
+ from zscaler import ZscalerClient
434
+
435
+ config = {
436
+ "clientId": '{yourClientId}',
437
+ "privateKey": '{yourPrivateKey}',
438
+ "vanityDomain": '{yourvanityDomain}',
439
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
440
+ "customerId": "", # Optional parameter. Required only when using ZPA
441
+ "microtenantId": "", # Optional parameter. Required only when using ZPA with Microtenant
442
+ "partnerId": "", # Optional parameter. When provided, automatically includes x-partner-id header in all requests
443
+ "logging": {"enabled": False, "verbose": False},
444
+ }
445
+
446
+ def main():
447
+ with ZscalerClient(config) as client:
448
+ idp_id = "72058304855015574"
449
+ query_params = {'page': '1', 'page_size': '100'}
450
+ groups, resp, err = client.zpa.scim_groups.list_scim_groups(idp_id=idp_id, query_params=query_params)
451
+ if err:
452
+ print(f"Error listing SCIM groups: {err}")
453
+ return
454
+ if groups:
455
+ print(f"Processing {len(groups)} groups:")
456
+ for group in groups:
457
+ print(group)
458
+
459
+ try:
460
+ resp.next()
461
+ except StopIteration:
462
+ print("No more groups to retrieve.")
463
+
464
+ if __name__ == "__main__":
465
+ main()
466
+ ```
467
+
468
+ Note, that `privateKey` can be passed in JWK format or in PEM format, i.e. (examples generated with https://mkjwk.org):
469
+
470
+ > Using a Python dictionary to hard-code the Zscaler API credentials is encouraged for development ONLY; In production, you should use a more secure way of storing these values. This library supports a few different configuration sources, covered in the [configuration reference](#configuration-reference) section.
471
+
472
+ > **NOTE**: THIS IS NOT A PRODUCTION KEY AND IS DISPLAYED FOR EXAMPLE PURPOSES ONLY
473
+
474
+ ![JWK Example](https://raw.githubusercontent.com/zscaler/zscaler-sdk-python/refs/heads/master/docsrc/jwk.svg)
475
+
476
+ or
477
+
478
+ > **NOTE**: THIS IS NOT A PRODUCTION KEY AND IS DISPLAYED FOR EXAMPLE PURPOSES ONLY
479
+
480
+ ```
481
+ -----BEGIN PRIVATE KEY-----
482
+ # Example private key (not a real key)
483
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCv3krdYg3z7h0H
484
+ 60QoePJMghllQxsfPxp3mgFfYEaIbF88Z8dvPZEfhAtP19/Mv62ASjwgqzQzKHRV
485
+ -----END PRIVATE KEY-----
486
+ ```
487
+
488
+ ### Get and set custom headers
489
+
490
+ It is possible to set custom headers, which will be sent with each request. This feature is only supported when instantiating the OneAPI Client `ZscalerClient`.
491
+
492
+ ```py
493
+ from zscaler import ZscalerClient
494
+
495
+ def main():
496
+ with ZscalerClient(config) as client:
497
+ client.set_custom_headers({'Custom-Header': 'custom value'})
498
+ groups, resp, err = client.zpa.segment_groups.list_groups()
499
+ for group in groups:
500
+ print(group.name, group.description)
501
+
502
+ # clear all custom headers
503
+ client.clear_custom_headers()
504
+
505
+ # output should be: {}
506
+ print(client.get_custom_headers())
507
+ ```
508
+
509
+ Note, that custom headers will be overwritten with default headers with the same name.
510
+ This doesn't allow breaking the client. Get default headers:
511
+
512
+ ### Automatic x-partner-id Header Injection
513
+
514
+ The SDK automatically includes the `x-partner-id` header in all API requests when `partnerId` is provided in the configuration. This feature works seamlessly across all services (ZIA, ZPA, ZTW, ZCC, ZDX, ZWA) and both OneAPI and Legacy clients.
515
+
516
+ **How it works:**
517
+ - When `partnerId` is provided via config dictionary or `ZSCALER_PARTNER_ID` environment variable, the SDK automatically adds `x-partner-id: <partnerId>` to all request headers
518
+ - If `partnerId` is not provided, the header is not included
519
+ - No additional code is required - the header injection is handled automatically by the SDK
520
+
521
+ **Example:**
522
+
523
+ ```py
524
+ from zscaler import ZscalerClient
525
+
526
+ config = {
527
+ "clientId": '{yourClientId}',
528
+ "clientSecret": '{yourClientSecret}',
529
+ "vanityDomain": '{yourvanityDomain}',
530
+ "partnerId": "542585sdsdw", # Automatically adds x-partner-id header to all requests
531
+ "logging": {"enabled": False, "verbose": False},
532
+ }
533
+
534
+ def main():
535
+ with ZscalerClient(config) as client:
536
+ # All API requests will automatically include: x-partner-id: 542585sdsdw
537
+ groups, resp, err = client.zpa.segment_groups.list_groups()
538
+ # ... rest of your code
539
+ ```
540
+
541
+ **Note:** This feature is also supported in Legacy clients. When using `LegacyZPAClient`, `LegacyZIAClient`, etc., you can provide `partnerId` in the config dictionary and the header will be automatically included in all requests.
542
+
543
+ ### ZIA and ZTW Context Manager
544
+
545
+ The Zscaler SDK provides a context manager pattern that automatically handles authentication and session cleanup for both ZIA and ZTW services. This pattern ensures that all configuration changes are properly activated when the context manager exits.
546
+
547
+ #### How Context Manager Works
548
+
549
+ When you use the `with` statement with a Zscaler client, the following happens automatically:
550
+
551
+ 1. **Authentication**: The client authenticates when entering the context
552
+ 2. **Session Management**: A session is established and maintained throughout the context
553
+ 3. **Automatic Deauthentication**: When exiting the context, the client automatically deauthenticates, which activates all staged configuration changes
554
+
555
+ #### Implicit Activation Process
556
+
557
+ The context manager implements an "implicit activation" approach where:
558
+
559
+ - **All changes are final**: Configuration changes are automatically activated when the context exits
560
+ - **No manual activation required**: You don't need to remember to call activation endpoints
561
+ - **Deterministic behavior**: You always know that exiting the context will activate changes
562
+ - **Automation-friendly**: Perfect for scripts and automation scenarios
563
+
564
+ #### Example Usage
565
+
566
+ ```py
567
+ from zscaler import ZscalerClient
568
+
569
+ config = {
570
+ "clientId": '{yourClientId}',
571
+ "clientSecret": '{yourClientSecret}',
572
+ "vanityDomain": '{yourvanityDomain}',
573
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
574
+ "customerId": "", # Optional parameter. Required only when using ZPA
575
+ "microtenantId": "", # Optional parameter. Required only when using ZPA with Microtenant
576
+ "partnerId": "", # Optional parameter. When provided, automatically includes x-partner-id header in all requests
577
+ "logging": {"enabled": False, "verbose": False},
578
+ }
579
+
580
+ def main():
581
+ with ZscalerClient(config) as client:
582
+ # Make ZIA configuration changes
583
+ added_role, response, error = client.zia.admin_roles.add_role(
584
+ name="New API Role",
585
+ description="Role created via API",
586
+ feature_permissions={"ZIA_ADMIN_ROLE": "READ"}
587
+ )
588
+ if error:
589
+ print(f"Error adding role: {error}")
590
+ return
591
+
592
+ # Make ZTW configuration changes
593
+ added_group, response, error = client.ztw.ip_destination_groups.add_group(
594
+ name="New IP Group",
595
+ description="IP group created via API"
596
+ )
597
+ if error:
598
+ print(f"Error adding IP group: {error}")
599
+ return
600
+
601
+ print("All changes made successfully")
602
+
603
+ # Context manager automatically deauthenticates here
604
+ # All staged changes are activated automatically for both ZIA and ZTW
605
+ print("Context exited - all changes have been activated")
606
+
607
+ if __name__ == "__main__":
608
+ main()
609
+ ```
610
+
611
+ #### Benefits
612
+
613
+ - **Automatic cleanup**: No need to manually deauthenticate
614
+ - **Error handling**: Even if an exception occurs, the context manager ensures proper cleanup
615
+ - **Staged configuration activation**: All changes are activated when the context exits
616
+ - **Simplified code**: No need to remember activation steps
617
+ - **Multi-service support**: Works seamlessly with both ZIA and ZTW services
618
+
619
+ ## Zscaler OneAPI Rate Limiting
620
+
621
+ Zscaler OneAPI provides unique rate limiting numbers for each individual product. Regardless of the product, a 429 response will be returned if too many requests are made within a given time.
622
+
623
+ ### Built-In Retry
624
+
625
+ This SDK uses a built-in retry strategy to automatically retry on 429 errors based on the response headers returned by each respective API service.
626
+
627
+ The header `x-ratelimit-reset` is returned in the API response for each API call, which indicates the time in seconds until the rate limit resets. The SDK uses the returned value in this header to calculate the retry time for the following services:
628
+
629
+ * [ZCC Rate Limiting][rate-limiting-zcc] for rate limiting requirements.
630
+ * [ZIA Rate Limiting][rate-limiting-zia] for rate limiting requirements.
631
+ * [ZPA Rate Limiting][rate-limiting-zpa] for rate limiting requirements.
632
+
633
+ ## Pagination
634
+
635
+ The pagination system in this SDK is unified across `ZCC`, `ZTW`, `ZDX`, `ZIA`, `ZPA`, `ZWA`
636
+ and is applied transparently whether you're using the Legacy API Client or the new OneAPI OAuth2 Client.
637
+
638
+ ✅ This means no code changes are needed when transitioning from the legacy API framework to OneAPI framework.
639
+
640
+ When calling a method that supports pagination (e.g., `list_users`, `list_groups`, `list_app_segments`), only the first page of results is returned initially. The SDK returns a response tuple:
641
+
642
+ ```py
643
+ items, response, error = client.zia.user_management.list_groups()
644
+ ```
645
+
646
+ You can then use the `response.has_next()` and `response.next()` methods to retrieve subsequent pages.
647
+
648
+ ### Basic Pagination Example
649
+
650
+ ```py
651
+ query_parameters = {'page_size': 100}
652
+ groups, resp, err = client.zia.user_management.list_groups(query_parameters)
653
+
654
+ while resp.has_next():
655
+ more_groups, resp, err = resp.next() # Unpack all 3 return values
656
+ if err:
657
+ break
658
+ if more_groups:
659
+ groups.extend(more_groups)
660
+ ```
661
+
662
+ ### ZPA Searching and Filtering
663
+
664
+ The ZPA API uses a filtering/query parameter format for search operations. Search strings must follow the format: `fieldName operator fieldValue`. The SDK provides automatic conversion for simple name searches while allowing full control for advanced filtering.
665
+
666
+ #### Simple Name Search (Automatic Conversion)
667
+
668
+ For convenience, you can provide a simple search string when searching by name. The SDK automatically converts it to the `name+EQ+<search_string>` format for exact name matching:
669
+
670
+ ```py
671
+ # Simple string search - automatically converted to name+EQ+CDE Segment Group
672
+ query_parameters = {'search': 'CDE Segment Group'}
673
+ groups, resp, err = client.zpa.segment_groups.list_groups(query_parameters)
674
+ ```
675
+
676
+ #### Advanced Filtering (Explicit Format)
677
+
678
+ To search by other fields or use different operators, you must provide the complete filter format: `fieldName+operator+fieldValue`. Common operators include:
679
+
680
+ - `EQ` - Equals
681
+ - `NE` - Not equals
682
+ - `GT` - Greater than
683
+ - `LT` - Less than
684
+ - `GE` - Greater than or equal
685
+ - `LE` - Less than or equal
686
+ - `CONTAINS` - Contains substring
687
+ - `STARTSWITH` - Starts with
688
+ - `ENDSWITH` - Ends with
689
+
690
+ **Examples:**
691
+
692
+ ```py
693
+ # Search by enabled status
694
+ query_parameters = {'search': 'enabled+EQ+true'}
695
+ groups, resp, err = client.zpa.segment_groups.list_groups(query_parameters)
696
+
697
+ # Search by description with CONTAINS operator
698
+ query_parameters = {'search': 'description+CONTAINS+test'}
699
+ groups, resp, err = client.zpa.segment_groups.list_groups(query_parameters)
700
+
701
+ # Search by name with STARTSWITH operator
702
+ query_parameters = {'search': 'name+STARTSWITH+CDE'}
703
+ groups, resp, err = client.zpa.segment_groups.list_groups(query_parameters)
704
+ ```
705
+
706
+ **Note:** If your search string already contains a filter operator pattern (like `+EQ+` or `+CONTAINS+`), the SDK will use it as-is without modification. This allows full control over filtering criteria while maintaining convenience for simple name searches.
707
+
708
+ #### Combining Search with Pagination
709
+
710
+ You can combine search filters with pagination parameters:
711
+
712
+ ```py
713
+ query_parameters = {
714
+ 'search': 'name+EQ+CDE Segment Group',
715
+ 'page': 1,
716
+ 'pagesize': 20
717
+ }
718
+ groups, resp, err = client.zpa.segment_groups.list_groups(query_parameters)
719
+
720
+ # Pagination works seamlessly with filtered searches
721
+ while resp.has_next():
722
+ more_groups, resp, err = resp.next()
723
+ if err:
724
+ break
725
+ if more_groups:
726
+ groups.extend(more_groups)
727
+ ```
728
+
729
+ ### Full Example with Error Handling
730
+ ```py
731
+ def main():
732
+ with ZscalerClient(config) as client:
733
+ query_parameters = {}
734
+ groups, resp, err = client.zia.user_management.list_groups(query_parameters)
735
+
736
+ if err:
737
+ print(f"Error: {err}")
738
+ return
739
+
740
+ print(f"Processing {len(groups)} groups:")
741
+ for group in groups:
742
+ print(group)
743
+
744
+ while resp.has_next():
745
+ next_page, resp, err = resp.next() # Unpack all 3 return values
746
+ if err:
747
+ print(f"Error fetching next page: {err}")
748
+ break
749
+ if next_page:
750
+ for group in next_page:
751
+ print(group)
752
+
753
+ try:
754
+ resp.next() # Will raise StopIteration if no more data
755
+ except StopIteration:
756
+ print("✅ No more groups to retrieve.")
757
+
758
+ if __name__ == "__main__":
759
+ main()
760
+ ```
761
+
762
+ ### Pagination Limits and Controls
763
+
764
+ Each Zscaler service has its own pagination requirements and limits. The SDK automatically respects these API defaults when no `page_size` is provided:
765
+
766
+ | Service | API Default Page Size | Max Page Size | Pagination Parameters |
767
+ |---------|-----------------------|---------------|-------------------------------------------------|
768
+ | ZCC | Varies by endpoint | Varies | Uses `page`, `pageSize` |
769
+ | ZDX | 10 | Varies | Uses `limit` + `offset` (cursor-based) |
770
+ | ZIA | 100 | 1000 | Uses `page`, `pageSize` |
771
+ | ZPA | 20 | 500 | Uses `page`, `pagesize` |
772
+ | ZTW | 100 | Varies | Uses `page`, `pageSize` |
773
+ | ZWA | Varies by endpoint | Varies | Uses `page`, `pageSize` |
774
+
775
+ **Important Notes:**
776
+ - ✅ The SDK automatically uses each API's default page size when no `page_size` is specified
777
+ - ✅ Always use `snake_case` for parameter names (e.g., `page_size`). The SDK handles conversion internally
778
+ - ✅ Pagination stops automatically when fewer results than the page size are returned
779
+
780
+
781
+ You can control how many total items or pages the SDK will fetch even if more data is available.
782
+
783
+ ### Internal Pagination Handling
784
+
785
+ The `ZscalerAPIResponse` object returned as resp handles:
786
+
787
+ * Tracking the current page
788
+ * Automatically applying proper pagination parameters per service
789
+ * Mapping pagination fields like page, pagesize, limit, offset, next_offset, etc.
790
+ * Fallback handling when the API doesn't indicate the total count
791
+
792
+ You don’t need to worry about API quirks—just use `resp.has_next()` and `resp.next()` safely.
793
+
794
+ ⚠️ Note on StopIteration
795
+ The SDK raises a StopIteration if `next()` is called and no more pages are available:
796
+
797
+ ```py
798
+ try:
799
+ resp.next()
800
+ except StopIteration:
801
+ print("All data fetched.")
802
+ ```
803
+
804
+ ### Client-Side Filtering with JMESPath
805
+
806
+ The SDK supports client-side filtering and projection of API results using [JMESPath](https://jmespath.org/) expressions. After any list call, you can use `resp.search(expression)` to filter, project, or reshape the response data without making additional API calls.
807
+
808
+ JMESPath is a query language for JSON that lets you declaratively extract and transform elements from JSON documents. The `.search()` method applies a JMESPath expression to the current page of results and returns a list of matching items.
809
+
810
+ #### Basic Filtering
811
+
812
+ ```py
813
+ # Fetch users and filter admin users client-side
814
+ users, resp, err = client.zia.user_management.list_users()
815
+ admin_users = resp.search("[?adminUser==`true`]")
816
+ print(f"Found {len(admin_users)} admin users")
817
+ ```
818
+
819
+ #### Projection (Selecting Specific Fields)
820
+
821
+ ```py
822
+ # Extract only names and emails
823
+ users, resp, err = client.zia.user_management.list_users()
824
+ names_emails = resp.search("[*].{name: name, email: email}")
825
+ for item in names_emails:
826
+ print(f"{item['name']}: {item['email']}")
827
+ ```
828
+
829
+ #### Combined Filtering and Projection
830
+
831
+ ```py
832
+ # Filter by role and project specific fields
833
+ users, resp, err = client.zia.user_management.list_users()
834
+ result = resp.search("[?adminUser==`true`].{name: name, id: id}")
835
+ ```
836
+
837
+ #### Nested Field Filtering
838
+
839
+ ```py
840
+ # Filter users by department name
841
+ users, resp, err = client.zia.user_management.list_users()
842
+ eng_users = resp.search("[?department.name=='Engineering'].name")
843
+ ```
844
+
845
+ #### Using with Paginated Results
846
+
847
+ `.search()` operates on the current page. To filter across all pages, apply it to each page as you paginate:
848
+
849
+ ```py
850
+ users, resp, err = client.zia.user_management.list_users(
851
+ query_params={"page_size": 1000}
852
+ )
853
+ all_admins = resp.search("[?adminUser==`true`]")
854
+
855
+ while resp.has_next():
856
+ next_page, resp, err = resp.next()
857
+ if err:
858
+ break
859
+ if next_page:
860
+ all_admins.extend(resp.search("[?adminUser==`true`]"))
861
+
862
+ print(f"Total admins across all pages: {len(all_admins)}")
863
+ ```
864
+
865
+ #### Using with Wrapped Responses
866
+
867
+ For APIs that wrap results in a named key (e.g., ZDX `items`, ZBI `reports`), reference the key in the expression:
868
+
869
+ ```py
870
+ # ZDX software inventory
871
+ items, resp, err = client.zdx.software.list_inventory()
872
+ zscaler_sw = resp.search(
873
+ "items[?vendor=='Zscaler'].{name: software_name, devices: device_total}"
874
+ )
875
+
876
+ # ZBI reports
877
+ reports, resp, err = client.zbi.reports.list_reports(report_type="APPLICATION")
878
+ completed = resp.search("reports[?status=='COMPLETED']")
879
+ ```
880
+
881
+ #### JMESPath Built-in Functions
882
+
883
+ JMESPath supports built-in functions like `length()`, `sort_by()`, `max_by()`, and more:
884
+
885
+ ```py
886
+ # Users with at least one group assigned
887
+ users, resp, err = client.zia.user_management.list_users()
888
+ with_groups = resp.search("[?length(groups || `[]`) > `0`]")
889
+ ```
890
+
891
+ For the full JMESPath specification and function reference, see [jmespath.org](https://jmespath.org/).
892
+
893
+ ## Logging
894
+
895
+ The Zscaler SDK Python, provides robust logging for debug purposes.
896
+ Logs are disabled by default and should be enabled explicitly via client configuration or via a [configuration file](#configuration-reference):
897
+
898
+ ```py
899
+ from zscaler import ZscalerClient
900
+
901
+ config = {"logging": {"enabled": True}}
902
+ client = ZscalerClient(config)
903
+ ```
904
+ You can also enable debug logging via the following environment variables:
905
+ * `ZSCALER_SDK_LOG` - Turn on logging
906
+ * `ZSCALER_SDK_VERBOSE` - Turn on logging in verbose mode
907
+
908
+ ```sh
909
+ export ZSCALER_SDK_LOG=true
910
+ export ZSCALER_SDK_VERBOSE=true
911
+ ```
912
+
913
+ This SDK utilizes the standard Python library `logging`. By default, log level INFO is set. You can set another log level by setting the argument `verbose` to `True`.
914
+
915
+ **NOTE**: DO NOT SET DEBUG LEVEL IN PRODUCTION!
916
+
917
+ ```py
918
+ from zscaler import ZscalerClient
919
+
920
+ config = {
921
+ "clientId": '{yourClientId}',
922
+ "clientSecret": '{yourClientSecret}',
923
+ "vanityDomain": '{yourvanityDomain}',
924
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
925
+ "customerId": "", # Optional parameter. Required only when using ZPA
926
+ "microtenantId": "", # Optional parameter. Required only when using ZPA with Microtenant
927
+ "logging": {"enabled": True, "verbose": True},
928
+ }
929
+
930
+ def main():
931
+ with ZscalerClient(config) as client:
932
+ groups, resp, err = client.zpa.segment_groups.list_groups()
933
+ for group in groups:
934
+ print(group.name, group.description)
935
+ if __name__ == "__main__":
936
+ main()
937
+ ```
938
+
939
+ You should now see logs in your console. Notice that API Credentials i.e `clientId` and `clientSecret` are **NOT** logged to the console; however, Bearer tokens are still visible. We still advise to use caution and never use `verbose` level logging in production.
940
+
941
+ What it being logged? `requests`, `responses`, `http errors`, `caching responses`.
942
+
943
+ ### Using Your Own Logger (Optional)
944
+ If your script defines its own logging configuration (e.g., for file or custom formatting), the SDK will not interfere with it. You can continue using your own logger like this:
945
+
946
+ ```py
947
+ import logging
948
+
949
+ my_logger = logging.getLogger("my_app_logger")
950
+ my_logger.setLevel(logging.INFO)
951
+ handler = logging.StreamHandler()
952
+ handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
953
+ my_logger.addHandler(handler)
954
+
955
+ my_logger.info("This is your app-level log, independent from the SDK.")
956
+ ```
957
+
958
+ To control SDK logging separately, use:
959
+
960
+ ```py
961
+ logging.getLogger("zscaler-sdk-python").setLevel(logging.WARNING) # or .ERROR to silence SDK logs
962
+ ```
963
+
964
+ The SDK will never globally disable logging or interfere with your existing logging configuration.
965
+
966
+ ## Configuration reference
967
+
968
+ This library looks for configuration in the following sources:
969
+
970
+ 0. An `zscaler.yaml` file in a `.zscaler` folder in the current user's home directory (`~/.zscaler/zscaler.yaml` or `%userprofile%\.zscaler\zscaler.yaml`). See a sample [YAML Configuration](#yaml-configuration)
971
+ 1. A `zscaler.yaml` file in the application or project's root directory. See a sample [YAML Configuration](#yaml-configuration)
972
+ 2. [Environment variables](#environment-variables)
973
+ 3. Configuration explicitly passed to the constructor (see the example in [Getting started](#getting-started))
974
+
975
+ > Only ONE source needs to be provided!
976
+
977
+ Higher numbers win. In other words, configuration passed via the constructor will OVERRIDE configuration found in environment variables, which will override configuration in the designated `zscaler.yaml` files.
978
+
979
+ **NOTE:** This option is only supported for OneAPI Zidentity credentials at the moment.
980
+
981
+ ### YAML configuration
982
+
983
+ When you use an API Token instead of OAuth 2.0 the full YAML configuration looks like:
984
+
985
+ ```yaml
986
+ zscaler:
987
+ client:
988
+ clientId: { yourClientId }
989
+ clientSecret: { yourClientSecret }
990
+ vanityDomain: { yourVanityDomain }
991
+ customerId: { yourCustomerId}
992
+ proxy:
993
+ port: { proxy_port }
994
+ host: { proxy_host }
995
+ username: { proxy_username }
996
+ password: { proxy_password }
997
+ logging:
998
+ enabled: true
999
+ verbose: true
1000
+ ```
1001
+
1002
+ > **NOTE**: THIS IS NOT A PRODUCTION KEY AND IS DISPLAYED FOR EXAMPLE PURPOSES ONLY
1003
+
1004
+ When you use OAuth 2.0 the full YAML configuration looks like:
1005
+
1006
+ ```yaml
1007
+ zscaler:
1008
+ client:
1009
+ clientId: "YOUR_CLIENT_ID"
1010
+ privateKey: |
1011
+ -----BEGIN RSA PRIVATE KEY-----
1012
+ MIIEogIBAAKCAQEAl4F5CrP6Wu2kKwH1Z+CNBdo0iteHhVRIXeHdeoqIB1iXvuv4
1013
+ THQdM5PIlot6XmeV1KUKuzw2ewDeb5zcasA4QHPcSVh2+KzbttPQ+RUXCUAr5t+r
1014
+ 0r6gBc5Dy1IPjCFsqsPJXFwqe3RzUb...
1015
+ -----END RSA PRIVATE KEY-----
1016
+ vanityDomain: { yourVanityDomain }
1017
+ customerId: { yourCustomerId}
1018
+ proxy:
1019
+ port: { proxy_port }
1020
+ host: { proxy_host }
1021
+ username: { proxy_username }
1022
+ password: { proxy_password }
1023
+ logging:
1024
+ enabled: true
1025
+ verbose: true
1026
+ ```
1027
+
1028
+ ### Environment variables
1029
+
1030
+ Each one of the configuration values above can be turned into an environment variable name with the `_` (underscore) character and UPPERCASE characters. The following are accepted:
1031
+
1032
+ | Argument | Description | Environment variable |
1033
+ |--------------|-------------|-------------------|
1034
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
1035
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
1036
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_CLIENT_PRIVATEKEY` |
1037
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
1038
+ | `cloud` | _(String)_ The host and basePath for the cloud services API is `$api.<cloud_name>.zsapi.net`.| `ZSCALER_CLOUD` |
1039
+ | `userAgent` | _(String)_ Append additional information to the HTTP User-Agent | `ZSCALER_CLIENT_USERAGENT` |
1040
+ | `cache.enabled` | _(String)_ Use request memory cache | `ZSCALER_CLIENT_CACHE_ENABLED` |
1041
+ | `cache.defaultTti` | _(String)_ Cache clean up interval in seconds | `ZSCALER_CLIENT_CACHE_DEFAULTTTI` |
1042
+ | `cache.defaultTtl` | _(String)_ Cache time to live in seconds | `ZSCALER_CLIENT_CACHE_DEFAULTTTL` |
1043
+ | `proxyPort` | _(String)_ HTTP proxy port | `ZSCALER_CLIENT_PROXY_PORT` |
1044
+ | `proxyHost` | _(String)_ HTTP proxy host | `ZSCALER_CLIENT_PROXY_HOST` |
1045
+ | `proxyUsername` | _(String)_ HTTP proxy username | `ZSCALER_CLIENT_PROXY_USERNAME` |
1046
+ | `proxyPassword` | _(String)_ HTTP proxy password | `ZSCALER_CLIENT_PROXY_PASSWORD` |
1047
+ | `disableHttpsCheck` | _(String)_ Disable SSL checks | `ZSCALER_TESTING_TESTINGDISABLEHTTPSCHECK` |
1048
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
1049
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
1050
+
1051
+ ### Zscaler ZIdentity API (zid)
1052
+
1053
+ This SDK supports programmatic integration with the Zscaler ZIdentity API service.
1054
+
1055
+ The authentication to Zscaler ZIdentity service via the OneAPI framework, requires uses the API client `ZscalerClient`
1056
+
1057
+ Access via `client.zid` (primary) or `client.zidentity` (backward-compatible alias).
1058
+
1059
+ #### ZIdentity Pagination
1060
+
1061
+ ZIdentity API supports pagination with a maximum page size of 100 records per request. The SDK automatically handles pagination for ZIdentity endpoints.
1062
+
1063
+ **Key Features:**
1064
+ - **Maximum Page Size**: 100 records per page (enforced by API)
1065
+ - **Automatic Pagination**: SDK handles pagination transparently
1066
+ - **Response Format**: Returns data in `records` field with pagination metadata
1067
+
1068
+ **Example Usage:**
1069
+
1070
+ ```py
1071
+ from zscaler import ZscalerClient
1072
+
1073
+ config = {
1074
+ "clientId": '{yourClientId}',
1075
+ "clientSecret": '{yourClientSecret}',
1076
+ "vanityDomain": '{yourvanityDomain}',
1077
+ "cloud": "beta",
1078
+ }
1079
+
1080
+ def main():
1081
+ with ZscalerClient(config) as client:
1082
+ # Request 300 groups (will automatically fetch 3 pages)
1083
+ groups_response, response, error = client.zid.groups.list_groups(
1084
+ query_params={'page_size': 300}
1085
+ )
1086
+
1087
+ if error:
1088
+ print(f"Error listing groups: {error}")
1089
+ return
1090
+
1091
+ print(f"Total groups in response: {len(groups_response.records)}")
1092
+ print(f"Total available: {groups_response.results_total}")
1093
+ print(f"Page offset: {groups_response.page_offset}")
1094
+ print(f"Page size: {groups_response.page_size}")
1095
+
1096
+ # Access individual groups
1097
+ for group in groups_response.records:
1098
+ print(f"Group: {group.name} (ID: {group.id})")
1099
+
1100
+ # Manual pagination using response object
1101
+ while response.has_next():
1102
+ next_results, error = response.next()
1103
+ if error:
1104
+ print(f"Error fetching next page: {error}")
1105
+ break
1106
+
1107
+ print(f"Next page: {len(next_results)} groups")
1108
+ for group in next_results:
1109
+ print(f"Group: {group['name']} (ID: {group['id']})")
1110
+
1111
+ if __name__ == "__main__":
1112
+ main()
1113
+ ```
1114
+
1115
+ **Pagination Metadata:**
1116
+ - `results_total`: Total number of records available
1117
+ - `page_offset`: Current page offset
1118
+ - `page_size`: Number of records per page (max 100)
1119
+ - `next_link`: URL for next page (if available)
1120
+ - `prev_link`: URL for previous page (if available)
1121
+
1122
+ | Argument | Description | Environment variable |
1123
+ |--------------|-------------|-------------------|
1124
+ | `clientId` | _(String)_ Zscaler API Client ID, used with `clientSecret` or `PrivateKey` OAuth auth mode.| `ZSCALER_CLIENT_ID` |
1125
+ | `clientSecret` | _(String)_ A string that contains the password for the API admin.| `ZSCALER_CLIENT_SECRET` |
1126
+ | `privateKey` | _(String)_ A string Private key value.| `ZSCALER_PRIVATE_KEY` |
1127
+ | `vanityDomain` | _(String)_ Refers to the domain name used by your organization `https://<vanity_domain>.zslogin.net/oauth2/v1/token` | `ZSCALER_VANITY_DOMAIN` |
1128
+ | `cloud`
1129
+
1130
+ ### Initialize OneAPI OAuth 2.0 Client
1131
+
1132
+ #### ZIdentity OneAPI Client ID and Client Secret Authentication
1133
+
1134
+ Construct a client instance by passing your ZIdentity `clientId`, `clientSecret` and `vanityDomain`:
1135
+
1136
+ ```py
1137
+ from zscaler import ZscalerClient
1138
+
1139
+ config = {
1140
+ "clientId": '{yourClientId}',
1141
+ "clientSecret": '{yourClientSecret}',
1142
+ "vanityDomain": '{yourvanityDomain}',
1143
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
1144
+ "logging": {"enabled": False, "verbose": False},
1145
+ }
1146
+
1147
+ def main():
1148
+ with ZscalerClient(config) as client:
1149
+ users, _, error = client.zid.groups.list_groups()
1150
+ if error:
1151
+ print(f"Error listing users: {error}")
1152
+ return
1153
+
1154
+ print(f"Total users found: {len(users)}")
1155
+
1156
+ if __name__ == "__main__":
1157
+ main()
1158
+ ```
1159
+
1160
+ #### ZIdentity OneAPI Client ID and Private Key Authentication
1161
+
1162
+ ```py
1163
+ from zscaler import ZscalerClient
1164
+
1165
+ config = {
1166
+ "clientId": '{yourClientId}',
1167
+ "privateKey": '{yourPrivateKey}',
1168
+ "vanityDomain": '{yourvanityDomain}',
1169
+ "cloud": "beta", # Optional when authenticating to an alternative cloud environment
1170
+ "logging": {"enabled": False, "verbose": False},
1171
+ }
1172
+
1173
+ def main():
1174
+ with ZscalerClient(config) as client:
1175
+ users, _, error = client.zid.groups.list_groups()
1176
+ if error:
1177
+ print(f"Error listing users: {error}")
1178
+ return
1179
+
1180
+ print(f"Total users found: {len(users)}")
1181
+
1182
+ if __name__ == "__main__":
1183
+ main()
1184
+ ```
1185
+
1186
+ ### Zscaler Sandbox Authentication
1187
+
1188
+ To authenticate to the Zscaler Sandbox service you must authenticate by instantiating the `ZscalerClient`.
1189
+
1190
+ Authentication to Zscaler Sandbox requires the attribute/parameter `sandboxCloud`. The following cloud environments are supported:
1191
+
1192
+ * `zscaler`
1193
+ * `zscalerone`
1194
+ * `zscalertwo`
1195
+ * `zscalerthree`
1196
+ * `zscloud`
1197
+ * `zscalerbeta`
1198
+ * `zscalergov`
1199
+ * `zscalerten`
1200
+ * `zspreview`
1201
+
1202
+ ### Environment variables
1203
+
1204
+ You can provide credentials via the `ZSCALER_SANDBOX_TOKEN`, `ZSCALER_SANDBOX_CLOUD` environment variables, representing your Zscaler Sandbox authentication paraemters respectively `sandboxToken`, `sandboxCloud`
1205
+
1206
+ | Argument | Description | Environment variable |
1207
+ |--------------|-------------|-------------------|
1208
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
1209
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
1210
+
1211
+ ### Zscaler Sandbox Client Initialization
1212
+
1213
+ ```py
1214
+ from zscaler import ZscalerClient
1215
+
1216
+ config = {
1217
+ "sandboxToken": '{yourSandboxToken}',
1218
+ "sandboxCloud": '{yourSandboxCloud}',
1219
+ "logging": {"enabled": False, "verbose": False},
1220
+ }
1221
+
1222
+ def main():
1223
+
1224
+ script_dir = os.path.dirname(os.path.abspath(__file__))
1225
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
1226
+ force_analysis = True
1227
+
1228
+ with ZscalerClient(config) as client:
1229
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
1230
+
1231
+ if err:
1232
+ print(f"Error submitting file: {err}")
1233
+ else:
1234
+ print("File submitted successfully!")
1235
+ print(f"Response: {submit}")
1236
+
1237
+ if __name__ == "__main__":
1238
+ main()
1239
+ ```
1240
+
1241
+ ### ZIA Legacy Client Initialization
1242
+
1243
+ ```py
1244
+ import random
1245
+ from zscaler import ZscalerClient
1246
+
1247
+ config = {
1248
+ "sandboxToken": '{yourSandboxToken}',
1249
+ "sandboxCloud": '{yourSandboxCloud}',
1250
+ "logging": {"enabled": False, "verbose": False},
1251
+ }
1252
+
1253
+ def main():
1254
+
1255
+ script_dir = os.path.dirname(os.path.abspath(__file__))
1256
+ file_path = os.path.join(script_dir, "test-pe-file.exe")
1257
+ force_analysis = True
1258
+
1259
+ with ZscalerClient(config) as client:
1260
+ submit, _, err = client.zia.sandbox.submit_file(file_path=file_path, force=force_analysis)
1261
+
1262
+ if err:
1263
+ print(f"Error submitting file: {err}")
1264
+ else:
1265
+ print("File submitted successfully!")
1266
+ print(f"Response: {submit}")
1267
+
1268
+ if __name__ == "__main__":
1269
+ main()
1270
+ ```
1271
+
1272
+ ### Z-Insights (zins) — GraphQL Analytics API
1273
+
1274
+ Z-Insights provides visibility and analytics across web traffic, firewall, IoT, SaaS security, shadow IT, and cyber security domains via a GraphQL API.
1275
+
1276
+ **Note:** Z-Insights only supports OneAPI authentication. Legacy client authentication is not supported.
1277
+
1278
+ ```py
1279
+ from zscaler import ZscalerClient
1280
+
1281
+ config = {
1282
+ "clientId": '{yourClientId}',
1283
+ "clientSecret": '{yourClientSecret}',
1284
+ "vanityDomain": '{yourvanityDomain}',
1285
+ "cloud": "beta",
1286
+ }
1287
+
1288
+ def main():
1289
+ with ZscalerClient(config) as client:
1290
+ entries, _, err = client.zins.web_traffic.get_traffic_by_location(
1291
+ start_time=start_time, end_time=end_time,
1292
+ traffic_unit="TRANSACTIONS", limit=10
1293
+ )
1294
+ if err:
1295
+ print(f"Error: {err}")
1296
+ return
1297
+ print(f"Entries: {len(entries) if entries else 0}")
1298
+
1299
+ if __name__ == "__main__":
1300
+ main()
1301
+ ```
1302
+
1303
+ **Available Resources (via `client.zins.<resource>`):**
1304
+
1305
+ - `web_traffic` — Traffic by location, protocols, threat categories, no-grouping
1306
+ - `firewall` — Traffic by action, location, network services
1307
+ - `cyber_security` — Incidents
1308
+ - `saas_security` — CASB app reports
1309
+ - `shadow_it` — Shadow IT app discovery
1310
+ - `iot` — IoT device statistics
1311
+
1312
+ **Note:** `client.zinsights` is available as a backward-compatible alias for `client.zins`.
1313
+
1314
+ ### ZMS (Zscaler Microsegmentation) — GraphQL API
1315
+
1316
+ ZMS provides microsegmentation management for agents, resources, policy rules, app zones, and tagging via a GraphQL API.
1317
+
1318
+ **Note:** ZMS only supports OneAPI authentication. Legacy client authentication is not supported.
1319
+
1320
+ ```py
1321
+ from zscaler import ZscalerClient
1322
+
1323
+ config = {
1324
+ "clientId": '{yourClientId}',
1325
+ "clientSecret": '{yourClientSecret}',
1326
+ "vanityDomain": '{yourvanityDomain}',
1327
+ "cloud": "beta",
1328
+ }
1329
+
1330
+ def main():
1331
+ with ZscalerClient(config) as client:
1332
+ result, _, err = client.zms.agents.list_agents(
1333
+ customer_id="123456789", page=1, page_size=20
1334
+ )
1335
+ if err:
1336
+ print(f"Error: {err}")
1337
+ return
1338
+ for agent in result.get("nodes", []):
1339
+ print(agent.get("name"))
1340
+
1341
+ if __name__ == "__main__":
1342
+ main()
1343
+ ```
1344
+
1345
+ **Available Resources (via `client.zms.<resource>`):**
1346
+
1347
+ - `agents` — List agents, connection status statistics, version statistics
1348
+ - `agent_groups` — List agent groups, get TOTP secrets
1349
+ - `nonces` — List nonces (provisioning keys), get nonce by ID
1350
+ - `resources` — List resources, protection status, event metadata
1351
+ - `resource_groups` — List resource groups, get members, protection status
1352
+ - `policy_rules` — List policy rules, list default policy rules
1353
+ - `app_zones` — List app zones with filtering and pagination
1354
+ - `app_catalog` — List app catalog entries with filtering and ordering
1355
+ - `tags` — List tag namespaces, tag keys, and tag values
1356
+
1357
+ **Note:** `client.zmicroseg` is available as an alias for `client.zms`.
1358
+
1359
+ ## Zscaler Legacy API Framework
1360
+
1361
+ The legacy Zscaler API is still utilized by several customers, and will remain in place for the foreseeable future with no specific announced deprecation date.
1362
+
1363
+ ### ZIA Legacy Authentication
1364
+
1365
+ Organizations whose tenant is still not migrated to Zidentity must continue using their previous ZIA API credentials.
1366
+ This SDK provides a dedicated API client `LegacyZIAClient` compatible with the legacy framework, which must be used in this scenario.
1367
+
1368
+ - For authentication via Zscaler Internet Access, you must provide `username`, `password`, `api_key` and `cloud`
1369
+
1370
+ The ZIA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
1371
+
1372
+ * `zscaler`
1373
+ * `zscalerone`
1374
+ * `zscalertwo`
1375
+ * `zscalerthree`
1376
+ * `zscloud`
1377
+ * `zscalerbeta`
1378
+ * `zscalergov`
1379
+ * `zscalerten`
1380
+ * `zspreview`
1381
+
1382
+ ### Environment variables
1383
+
1384
+ You can provide credentials via the `ZIA_USERNAME`, `ZIA_PASSWORD`, `ZIA_API_KEY`, `ZIA_CLOUD` environment variables, representing your ZIA `username`, `password`, `api_key` and `cloud` respectively.
1385
+
1386
+ | Argument | Description | Environment variable |
1387
+ |--------------|-------------|-------------------|
1388
+ | `username` | _(String)_ A string that contains the email ID of the API admin.| `ZIA_USERNAME` |
1389
+ | `password` | _(String)_ A string that contains the password for the API admin.| `ZIA_PASSWORD` |
1390
+ | `api_key` | _(String)_ A string that contains the obfuscated API key (i.e., the return value of the obfuscateApiKey() method).| `ZIA_API_KEY` |
1391
+ | `cloud` | _(String)_ The host and basePath for the cloud services API is `$zsapi.<Zscaler Cloud Name>/api/v1`.| `ZIA_CLOUD` |
1392
+ | `sandboxToken` | _(String)_ The Zscaler Internet Access Sandbox Token | `ZSCALER_SANDBOX_TOKEN` |
1393
+ | `sandboxCloud` | _(String)_ The Zscaler Internet Access Sandbox cloud name | `ZSCALER_SANDBOX_CLOUD` |
1394
+
1395
+ ### ZIA Legacy Client Initialization
1396
+
1397
+ ```py
1398
+ import random
1399
+ from zscaler.oneapi_client import LegacyZIAClient
1400
+
1401
+ config = {
1402
+ "username": '{yourUsername}',
1403
+ "password": '{yourPassword}',
1404
+ "api_key": '{yourApiKey}',
1405
+ "cloud": '{yourCloud}',
1406
+ "logging": {"enabled": False, "verbose": False},
1407
+ }
1408
+
1409
+ def main():
1410
+ with LegacyZIAClient(config) as client:
1411
+ added_label, response, error = client.zia.rule_labels.add_label(
1412
+ name=f"NewLabel_{random.randint(1000, 10000)}",
1413
+ description=f"NewLabel_{random.randint(1000, 10000)}",
1414
+ )
1415
+ if err:
1416
+ print(f"Error adding label: {err}")
1417
+ return
1418
+ print(f"Label added successfully: {added_label.as_dict()}")
1419
+
1420
+ if __name__ == "__main__":
1421
+ main()
1422
+ ```
1423
+
1424
+ ### ZIA and ZTW Context Manager
1425
+
1426
+ The Zscaler SDK provides a context manager pattern that automatically handles authentication and session cleanup for both ZIA and ZTW services. This pattern ensures that all configuration changes are properly activated when the context manager exits.
1427
+
1428
+ #### How Context Manager Works
1429
+
1430
+ When you use the `with` statement with a Zscaler client, the following happens automatically:
1431
+
1432
+ 1. **Authentication**: The client authenticates when entering the context
1433
+ 2. **Session Management**: A session is established and maintained throughout the context
1434
+ 3. **Automatic Deauthentication**: When exiting the context, the client automatically deauthenticates, which activates all staged configuration changes
1435
+
1436
+ #### Implicit Activation Process
1437
+
1438
+ The context manager implements an "implicit activation" approach where:
1439
+
1440
+ - **All changes are final**: Configuration changes are automatically activated when the context exits
1441
+ - **No manual activation required**: You don't need to remember to call activation endpoints
1442
+ - **Deterministic behavior**: You always know that exiting the context will activate changes
1443
+ - **Automation-friendly**: Perfect for scripts and automation scenarios
1444
+
1445
+ #### Example Usage
1446
+
1447
+ ```py
1448
+ import random
1449
+ from zscaler.oneapi_client import LegacyZIAClient
1450
+
1451
+ config = {
1452
+ "username": '{yourUsername}',
1453
+ "password": '{yourPassword}',
1454
+ "api_key": '{yourApiKey}',
1455
+ "cloud": '{yourCloud}',
1456
+ "logging": {"enabled": False, "verbose": False},
1457
+ }
1458
+
1459
+ def main():
1460
+ with LegacyZIAClient(config) as client:
1461
+ # Make configuration changes
1462
+ added_label, response, error = client.zia.rule_labels.add_label(
1463
+ name=f"NewLabel_{random.randint(1000, 10000)}",
1464
+ description=f"NewLabel_{random.randint(1000, 10000)}",
1465
+ )
1466
+ if error:
1467
+ print(f"Error adding label: {error}")
1468
+ return
1469
+
1470
+ # Make more changes
1471
+ updated_role, response, error = client.zia.admin_roles.update_role(
1472
+ role_id="12345",
1473
+ name="Updated Role Name"
1474
+ )
1475
+ if error:
1476
+ print(f"Error updating role: {error}")
1477
+ return
1478
+
1479
+ print("All changes made successfully")
1480
+
1481
+ # Context manager automatically deauthenticates here
1482
+ # All staged changes are activated automatically
1483
+ print("Context exited - all changes have been activated")
1484
+
1485
+ if __name__ == "__main__":
1486
+ main()
1487
+ ```
1488
+
1489
+ #### Benefits
1490
+
1491
+ - **Automatic cleanup**: No need to manually deauthenticate
1492
+ - **Error handling**: Even if an exception occurs, the context manager ensures proper cleanup
1493
+ - **Staged configuration activation**: All changes are activated when the context exits
1494
+ - **Simplified code**: No need to remember activation steps
1495
+
1496
+ ### ZTW Legacy Authentication
1497
+
1498
+ Organizations whose tenant is still not migrated to Zidentity must continue using their previous ZTW API credentials.
1499
+ This SDK provides a dedicated API client `LegacyZTWClient` compatible with the legacy framework, which must be used in this scenario.
1500
+
1501
+ - For authentication via Zscaler Internet Access, you must provide `username`, `password`, `api_key` and `cloud`
1502
+
1503
+ The ZTW Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
1504
+
1505
+ * `zscaler`
1506
+ * `zscalerone`
1507
+ * `zscalertwo`
1508
+ * `zscalerthree`
1509
+ * `zscloud`
1510
+ * `zscalerbeta`
1511
+ * `zscalergov`
1512
+ * `zscalerten`
1513
+ * `zspreview`
1514
+
1515
+ ### Environment variables
1516
+
1517
+ You can provide credentials via the `ZTW_USERNAME`, `ZTW_PASSWORD`, `ZTW_API_KEY`, `ZTW_CLOUD` environment variables, representing your ZTW `username`, `password`, `api_key` and `cloud` respectively.
1518
+
1519
+ | Argument | Description | Environment variable |
1520
+ |--------------|-------------|-------------------|
1521
+ | `username` | _(String)_ A string that contains the email ID of the API admin.| `ZTW_USERNAME` |
1522
+ | `password` | _(String)_ A string that contains the password for the API admin.| `ZTW_PASSWORD` |
1523
+ | `api_key` | _(String)_ A string that contains the obfuscated API key (i.e., the return value of the obfuscateApiKey() method).| `ZTW_API_KEY` |
1524
+ | `cloud` | _(String)_ The host and basePath for the cloud services API is `$zsapi.<Zscaler Cloud Name>/api/v1`.| `ZTW_CLOUD` |
1525
+
1526
+ ### ZTW Legacy Client Initialization
1527
+
1528
+ ```py
1529
+ import random
1530
+ from zscaler.oneapi_client import LegacyZTWClient
1531
+
1532
+ config = {
1533
+ "username": '{yourUsername}',
1534
+ "password": '{yourPassword}',
1535
+ "api_key": '{yourApiKey}',
1536
+ "cloud": '{yourCloud}',
1537
+ "logging": {"enabled": False, "verbose": False},
1538
+ }
1539
+
1540
+ def main():
1541
+ with LegacyZTWClient(config) as client:
1542
+ fetched_prov_url, response, error = client.ZTW.provisioning_url.list_provisioning_url()
1543
+ if error:
1544
+ print(f"Error fetching prov url by ID: {error}")
1545
+ return
1546
+ print(f"Fetched prov url by ID: {fetched_prov_url.as_dict()}")
1547
+
1548
+ if __name__ == "__main__":
1549
+ main()
1550
+ ```
1551
+
1552
+ ### ZPA Legacy Authentication
1553
+
1554
+ Organizations whose tenant is still not migrated to Zidentity must continue using their previous ZPA API credentials.
1555
+ This SDK provides a dedicated API client `LegacyZPAClient` compatible with the legacy framework, which must be used in this scenario.
1556
+
1557
+ - For authentication via Zscaler Private Access, you must provide `client_id`, `client_secret`, `customer_id` and `cloud`
1558
+
1559
+ The ZPA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
1560
+
1561
+ * `PRODUCTION`
1562
+ * `ZPATWO`
1563
+ * `BETA`
1564
+ * `GOV`
1565
+ * `GOVUS`
1566
+
1567
+ ### Environment variables
1568
+
1569
+ You can provide credentials via the `ZPA_CLIENT_ID`, `ZPA_CLIENT_SECRET`, `ZPA_CUSTOMER_ID`, `ZPA_CLOUD`, `ZSCALER_PARTNER_ID` environment variables, representing your ZPA `clientId`, `clientSecret`, `customerId`, `cloud` and `partnerId` of your ZPA account, respectively.
1570
+
1571
+ ~> **NOTE** `ZPA_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
1572
+
1573
+ | Argument | Description | Environment variable |
1574
+ |--------------|-------------|-------------------|
1575
+ | `clientId` | _(String)_ The ZPA API client ID generated from the ZPA console.| `ZPA_CLIENT_ID` |
1576
+ | `clientSecret` | _(String)_ The ZPA API client secret generated from the ZPA console.| `ZPA_CLIENT_SECRET` |
1577
+ | `customerId` | _(String)_ The ZPA tenant ID found in the Administration > Company menu in the ZPA console.| `ZPA_CUSTOMER_ID` |
1578
+ | `microtenantId` | _(String)_ The ZPA microtenant ID found in the respective microtenant instance under Configuration & Control > Public API > API Keys menu in the ZPA console.| `ZPA_MICROTENANT_ID` |
1579
+ | `partnerId` | _(String)_ Optional partner ID. When provided, the SDK automatically includes the `x-partner-id` header in all API requests.| `ZSCALER_PARTNER_ID` |
1580
+ | `cloud` | _(String)_ The Zscaler cloud for your tenancy.| `ZPA_CLOUD` |
1581
+
1582
+ ### ZPA Legacy Client Initialization
1583
+
1584
+ ```py
1585
+ import random
1586
+ from zscaler.oneapi_client import LegacyZPAClient
1587
+
1588
+ config = {
1589
+ "clientId": '{yourClientId}',
1590
+ "clientSecret": '{yourClientSecret}',
1591
+ "customerId": '{yourCustomerId}',
1592
+ "microtenantId": '{yourMicrotenantId}',
1593
+ "partnerId": "", # Optional parameter. When provided, automatically includes x-partner-id header in all requests
1594
+ "cloud": '{yourCloud}',
1595
+ "logging": {"enabled": False, "verbose": False},
1596
+ }
1597
+
1598
+ def main():
1599
+ with LegacyZPAClient(config) as client:
1600
+ added_label, response, error = client.zpa.segment_groups.add_group(
1601
+ name=f"NewGroup_{random.randint(1000, 10000)}",
1602
+ description=f"NewGroup_{random.randint(1000, 10000)}",
1603
+ enabled=True
1604
+ )
1605
+ if err:
1606
+ print(f"Error adding segment group: {err}")
1607
+ return
1608
+ print(f"Segment Group added successfully: {added_label.as_dict()}")
1609
+
1610
+ if __name__ == "__main__":
1611
+ main()
1612
+ ```
1613
+
1614
+ ### ZCC Legacy Authentication
1615
+
1616
+ Organizations whose tenant is still not migrated to Zidentity must continue using their previous ZCC API credentials.
1617
+ This SDK provides a dedicated API client `LegacyZCCClient` compatible with the legacy framework, which must be used in this scenario.
1618
+
1619
+ - For authentication via Zscaler Client Connector (ZCC), you must provide `api_key`, `secret_key`, and `cloud`
1620
+
1621
+ The ZCC Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
1622
+
1623
+ * `zscaler`
1624
+ * `zscalerone`
1625
+ * `zscalertwo`
1626
+ * `zscalerthree`
1627
+ * `zscloud`
1628
+ * `zscalerbeta`
1629
+ * `zscalergov`
1630
+ * `zscalerten`
1631
+ * `zspreview`
1632
+
1633
+ ### Environment variables
1634
+
1635
+ 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.
1636
+
1637
+ ~> **NOTE** `ZCC_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
1638
+
1639
+ | Argument | Description | Environment variable |
1640
+ |--------------|-------------|-------------------|
1641
+ | `api_key` | _(String)_ A string that contains the apiKey for the Mobile Portal.| `ZCC_CLIENT_ID` |
1642
+ | `secret_key` | _(String)_ A string that contains the secret key for the Mobile Portal.| `ZCC_CLIENT_SECRET` |
1643
+ | `cloud` | _(String)_ The host and basePath for the ZCC cloud services API is `$mobileadmin.<Zscaler Cloud Name>/papi`.| `ZCC_CLOUD` |
1644
+
1645
+ ### ZCC Legacy Client Initialization
1646
+
1647
+ ```py
1648
+ import random
1649
+ from zscaler.oneapi_client import LegacyZCCClient
1650
+
1651
+ config = {
1652
+ "api_key": '{yourApiKey}',
1653
+ "secret_key": '{yourSecreKey}',
1654
+ "cloud": '{yourCloud}',
1655
+ "logging": {"enabled": False, "verbose": False},
1656
+ }
1657
+
1658
+ with LegacyZCCClient(config) as client:
1659
+
1660
+ for group in client.zcc.devices.list_devices():
1661
+ print(group)
1662
+ if __name__ == "__main__":
1663
+ main()
1664
+ ```
1665
+
1666
+ ### ZDX Legacy Authentication
1667
+
1668
+ This SDK provides a dedicated API client `LegacyZDXClient` compatible with the legacy framework, which must be used in this scenario.
1669
+
1670
+ - For authentication via Zscaler Digital Experience (ZDX), you must provide `key_id`, `key_secret`
1671
+
1672
+ The ZDX `cloud` attribute identifies the cloud name prefix, which determines which API endpoint the requests should be sent to. By default the ZDX API client will always send the request to the following cloud: ``zdxcloud``
1673
+
1674
+ * ``zdxcloud``
1675
+ * ``zdxbeta``
1676
+
1677
+ ### ZDX Environment variables
1678
+
1679
+ You can provide credentials via the `ZDX_CLIENT_ID`, `ZDX_CLIENT_SECRET` environment variables, representing your ZDX `key_id`, `key_secret` of your ZDX account, respectively.
1680
+
1681
+ | Argument | Description | Environment variable |
1682
+ |--------------|-------------|-------------------|
1683
+ | `key_id` | _(String)_ A string that contains the key_id for the ZDX Portal.| `ZDX_CLIENT_ID` |
1684
+ | `key_secret` | _(String)_ A string that contains the key_secret key for the ZDX Portal.| `ZDX_CLIENT_SECRET` |
1685
+ | `cloud` | _(String)_ The cloud name prefix that identifies the correct API endpoint.| `ZDX_CLOUD` |
1686
+
1687
+ ### ZDX Legacy Client Initialization
1688
+
1689
+ ```py
1690
+ import random
1691
+ from zscaler.oneapi_client import LegacyZDXClient
1692
+
1693
+ config = {
1694
+ "key_id": '{yourKeyId}',
1695
+ "key_secret": '{yourKeySecret}',
1696
+ "cloud": '{yourCloud}',
1697
+ "logging": {"enabled": False, "verbose": False},
1698
+ }
1699
+
1700
+ def main():
1701
+ with LegacyZDXClient(config) as client:
1702
+ app_list, _, err = client.zdx.apps.list_apps(query_params{"since": 2})
1703
+ if err:
1704
+ print(f"Error listing applications: {err}")
1705
+ return
1706
+ for app in app_list:
1707
+ print(app.as_dict())
1708
+
1709
+ if __name__ == "__main__":
1710
+ main()
1711
+ ```
1712
+
1713
+ ### ZWA Legacy Authentication
1714
+
1715
+ This SDK provides a dedicated API client `LegacyZWAClient` compatible with the legacy framework, which must be used in this scenario.
1716
+
1717
+ - For authentication via Zscaler Workflow Automation (ZWA), you must provide `key_id`, `key_secret`
1718
+
1719
+ The ZWA `cloud` attribute identifies the cloud name prefix, which determines which API endpoint the requests should be sent to. By default the ZDX API client will always send the request to the following cloud: ``us1``
1720
+
1721
+ * ``us1``
1722
+
1723
+ For authentication via Zscaler Workflow Automation (ZWA), you must provide `key_id`, `key_secret`
1724
+
1725
+ ### ZWA Environment variables
1726
+
1727
+ You can provide credentials via the `ZWA_CLIENT_ID`, `ZWA_CLIENT_SECRET` environment variables, representing your ZDX `key_id`, `key_secret` of your ZWA account, respectively.
1728
+
1729
+ | Argument | Description | Environment variable |
1730
+ |--------------|-------------|-------------------|
1731
+ | `key_id` | _(String)_ The ZWA string that contains the API key ID.| `ZWA_CLIENT_ID` |
1732
+ | `key_secret` | _(String)_ The ZWA string that contains the key secret.| `ZWA_CLIENT_SECRET` |
1733
+ | `cloud` | _(String)_ The ZWA string containing cloud provisioned for your organization.| `ZWA_CLOUD` |
1734
+
1735
+ ### ZWA Legacy Client Initialization
1736
+
1737
+ ```py
1738
+ import random
1739
+ from zscaler.oneapi_client import LegacyZWAClient
1740
+
1741
+ config = {
1742
+ "key_id": '{yourKeyId}',
1743
+ "key_secret": '{yourKeySecret}',
1744
+ "cloud": '{yourCloud}',
1745
+ "logging": {"enabled": False, "verbose": False},
1746
+ }
1747
+
1748
+ def main():
1749
+ with LegacyZWAClient(config) as client:
1750
+ transactions, _, err = client.zwa.dlp_incidents.get_incident_transactions('SVDP-17410643229970491392')
1751
+ if err:
1752
+ print(f"Error listing transactions: {err}")
1753
+ return
1754
+ for incident in transactions:
1755
+ print(incident.as_dict())
1756
+
1757
+ if __name__ == "__main__":
1758
+ main()
1759
+ ```
1760
+
1761
+ ### Zero Trust Branch (ZTB) API
1762
+
1763
+ ZTB (Zero Trust Branch) authenticates via **API key**. The client calls
1764
+ `POST /api/v3/api-key-auth/login` with `{"api_key": "..."}` and receives a
1765
+ `delegate_token` used as `Authorization: Bearer <token>` for all subsequent requests.
1766
+ Unlike ZIA/ZTW, ZTB does **not** use JSESSIONID session cookies.
1767
+
1768
+ **Environment Variables:**
1769
+
1770
+ | Variable | Required | Description |
1771
+ |---|---|---|
1772
+ | `ZTB_API_KEY` | Yes (or pass `api_key`) | ZTB API key created in the ZTB UI |
1773
+ | `ZTB_CLOUD` | Yes* (or pass `cloud`) | Cloud subdomain for your tenancy (e.g. `zscalerbd-api`). Used to build base URL: `https://{cloud}.goairgap.com` |
1774
+ | `ZTB_OVERRIDE_URL` | No (or pass `override_url`) | Full base URL override (e.g. `https://zscalerbd-api.goairgap.com`). If set, `cloud` is not required. Use for non-standard or test URLs. |
1775
+ | `ZSCALER_PARTNER_ID` | No | Partner ID for `x-partner-id` header |
1776
+
1777
+ \* Either `ZTB_CLOUD` or `ZTB_OVERRIDE_URL` must be provided.
1778
+
1779
+ **Configuration Options:**
1780
+
1781
+ | Option | Default | Description |
1782
+ |---|---|---|
1783
+ | `api_key` | _(required)_ | ZTB API key from the ZTB console |
1784
+ | `cloud` | _(required if no override_url)_ | Cloud subdomain (e.g. `zscalerbd-api`) |
1785
+ | `override_url` | `None` | Full base URL override. When set, `cloud` is ignored. Include protocol (`https://`). |
1786
+ | `partner_id` | `None` | Partner ID for `x-partner-id` header |
1787
+ | `timeout` | `240` | Request timeout in seconds |
1788
+ | `max_retries` | `5` | Max retry attempts for 429/5xx/network errors |
1789
+
1790
+ **Important Notes:**
1791
+
1792
+ - On **401 Unauthorized**, the client automatically re-authenticates and retries once.
1793
+ - On **429** (rate limit) or **5xx** (502/503/504), the SDK retries with exponential backoff.
1794
+ - ZTB is available only via the **Legacy** client (`LegacyZTBClient`). OneAPI/OAuth2 is not supported for ZTB.
1795
+
1796
+ **Available Resources (via `client.ztb.<resource>`):**
1797
+
1798
+ - `alarms` — Alarms API
1799
+ - `api_keys` — API key auth
1800
+ - `app_connector_config` — App connector configuration
1801
+ - `devices` — Active devices, device tags, OS list, device details, DHCP history, filter values
1802
+ - `groups_router` — Groups router
1803
+ - `logs` — Logs and visibility charts
1804
+ - `policy_comments` — Policy comments
1805
+ - `ransomware_kill` — Ransomware kill
1806
+ - `site` — Site management
1807
+ - `site2site_vpn` — Site-to-site VPN (Cloud Gateway)
1808
+ - `template_router` — Template router
1809
+
1810
+ **Usage Example (Legacy Client):**
1811
+
1812
+ ```py
1813
+ from zscaler.oneapi_client import LegacyZTBClient
1814
+
1815
+ config = {
1816
+ "api_key": "{yourZTBAPIKey}",
1817
+ "cloud": "zscalerbd-api", # or use override_url for full URL
1818
+ "logging": {"enabled": False, "verbose": False},
1819
+ }
1820
+
1821
+ def main():
1822
+ with LegacyZTBClient(config) as client:
1823
+ alarms, response, error = client.ztb.alarms.list_alarms()
1824
+ if error:
1825
+ print(f"Error listing alarms: {error}")
1826
+ return
1827
+ print(f"Alarms: {alarms}")
1828
+
1829
+ devices, _, err = client.ztb.devices.list_active_devices(
1830
+ query_params={"page": 1, "limit": 25}
1831
+ )
1832
+ if not err:
1833
+ for d in devices:
1834
+ print(d.hostname)
1835
+
1836
+ if __name__ == "__main__":
1837
+ main()
1838
+ ```
1839
+
1840
+ **Using override_url (e.g. for test or custom tenant):**
1841
+
1842
+ ```py
1843
+ config = {
1844
+ "api_key": "{yourZTBAPIKey}",
1845
+ "override_url": "https://{yourSubdomain}.goairgap.com",
1846
+ }
1847
+ ```
1848
+
1849
+ ## Zscaler Legacy API Rate Limiting
1850
+
1851
+ Zscaler provides unique rate limiting numbers for each individual product. Regardless of the product, a 429 response will be returned if too many requests are made within a given time.
1852
+ Please see:
1853
+
1854
+ The header `X-Rate-Limit-Remaining` is returned in the API response for each API call. This header indicates the time in seconds until the rate limit resets. The SDK uses the returned value to calculate the retry time for the following services:
1855
+ * [ZCC Rate Limiting][rate-limiting-zcc] for rate limiting requirements.
1856
+
1857
+ The header `RateLimit-Reset` is returned in the API response for each API call. This header indicates the time in seconds until the rate limit resets. The SDK uses the returned value to calculate the retry time for the following services:
1858
+ * [ZDX Rate Limiting][rate-limiting-zdx] for rate limiting requirements.
1859
+ * [ZWA Rate Limiting][rate-limiting-zwa] for rate limiting requirements.
1860
+
1861
+ When a 429 error is received, the `Retry-After` header is returned in the API response. The SDK uses the returned value to calculate the retry time. The following services are rate limited based on its respective endpoint.
1862
+ * [ZTW Rate Limiting][rate-limiting-ZTW] for a complete list of which endpoints are rate limited.
1863
+ * [ZIA Rate Limiting][rate-limiting-zia] for a complete list of which endpoints are rate limited.
1864
+
1865
+ When a 429 error is received, the `retry-after` header will tell you the time at which you can retry. The SDK uses the returned value to calculate the retry time.
1866
+ * [ZPA Rate Limiting][rate-limiting-zpa] for rate limiting requirements.
1867
+
1868
+ ### Built-In Retry
1869
+
1870
+ 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.
1871
+
1872
+ | Configuration Option | Description |
1873
+ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
1874
+ | client.rateLimit.maxRetries | The number of times to retry (on retryable errors)
1875
+ | client.rateLimit.maxRetrySeconds | Max wait duration allowed for a retry backoff
1876
+
1877
+ ## Contributing
1878
+
1879
+ 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.
1880
+
1881
+ [zenith]: https://community.zscaler.com/
1882
+ [zscaler-support]: https://help.zscaler.com/contact-support
1883
+ [github-issues]: https://github.com/zscaler/zscaler-sdk-python/issues
1884
+ [rate-limiting-zcc]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/client-connector
1885
+ [rate-limiting-ZTW]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/cloud-branch-connector
1886
+ [rate-limiting-zdx]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/zdx
1887
+ [rate-limiting-zia]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/zia
1888
+ [rate-limiting-zpa]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/zpa
1889
+ [rate-limiting-bi]: https://automate.zscaler.com/docs/api-reference-and-guides/guides/rate-limiting/bi
1890
+ [rate-limiting-zwa]: https://help.zscaler.com/workflow-automation/understanding-api-rate-limiting-workflow-automation-api
1891
+
1892
+
1893
+ Contributors
1894
+ ------------
1895
+
1896
+ - William Guilherme - [willguibr](https://github.com/willguibr)
1897
+ - Eddie Parra - [eparra](https://github.com/eparra)
1898
+ - Paul Abbot - [abbottp](https://github.com/abbottp)
1899
+
1900
+ Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK, which this SDK was inspired on.
1901
+
1902
+ ## MIT License
1903
+
1904
+ =======
1905
+
1906
+ Copyright (c) 2023 [Zscaler](https://github.com/zscaler)
1907
+
1908
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1909
+ of this software and associated documentation files (the "Software"), to deal
1910
+ in the Software without restriction, including without limitation the rights
1911
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1912
+ copies of the Software, and to permit persons to whom the Software is
1913
+ furnished to do so, subject to the following conditions:
1914
+
1915
+ The above copyright notice and this permission notice shall be included in all
1916
+ copies or substantial portions of the Software.
1917
+
1918
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1919
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1920
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1921
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1922
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1923
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1924
+ SOFTWARE.
1925
+