zscaler-sdk-python 1.9.18__tar.gz → 1.9.20__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 (548) hide show
  1. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/PKG-INFO +92 -1
  2. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/README.md +90 -0
  3. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/pyproject.toml +2 -1
  4. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/__init__.py +1 -1
  5. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_response.py +71 -33
  6. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/custom_apps.py +8 -0
  7. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/reports.py +8 -0
  8. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/admin_user.py +16 -0
  9. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/devices.py +8 -0
  10. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/fail_open_policy.py +8 -0
  11. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/forwarding_profile.py +8 -0
  12. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/trusted_networks.py +8 -0
  13. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/web_app_service.py +8 -0
  14. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/web_policy.py +8 -0
  15. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/admin.py +16 -0
  16. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/alerts.py +24 -0
  17. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/apps.py +16 -0
  18. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/devices.py +16 -0
  19. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/inventory.py +8 -0
  20. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/troubleshooting.py +8 -0
  21. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/users.py +8 -0
  22. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/findings.py +8 -0
  23. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/lookalike_domains.py +8 -0
  24. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/organizations.py +8 -0
  25. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/admin_roles.py +8 -0
  26. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/alert_subscriptions.py +8 -0
  27. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/bandwidth_classes.py +16 -0
  28. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/bandwidth_control_rules.py +8 -0
  29. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_applications.py +16 -0
  30. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_firewall.py +24 -0
  31. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_nss.py +16 -0
  32. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_to_cloud_ir.py +24 -0
  33. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloudappcontrol.py +8 -0
  34. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/device_management.py +8 -0
  35. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dlp_dictionary.py +8 -0
  36. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dlp_engine.py +8 -0
  37. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dlp_web_rules.py +8 -0
  38. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dns_gatways.py +8 -0
  39. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/forwarding_control.py +1 -1
  40. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/gre_tunnel.py +40 -0
  41. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/intermediate_certificates.py +24 -0
  42. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/ipv6_config.py +16 -0
  43. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/locations.py +64 -0
  44. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/nss_servers.py +8 -0
  45. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/pac_files.py +8 -0
  46. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/proxies.py +32 -0
  47. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/risk_profiles.py +16 -0
  48. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/rule_labels.py +8 -0
  49. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/saas_security_api.py +40 -0
  50. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/shadow_it_report.py +16 -0
  51. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/sub_clouds.py +8 -0
  52. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/time_intervals.py +8 -0
  53. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/traffic_capture.py +8 -0
  54. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/traffic_datacenters.py +8 -0
  55. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/traffic_extranet.py +8 -0
  56. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/traffic_static_ip.py +8 -0
  57. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/traffic_vpn_credentials.py +8 -0
  58. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/user_management.py +32 -1
  59. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/vzen_clusters.py +8 -0
  60. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/vzen_nodes.py +8 -0
  61. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/zpa_gateway.py +8 -0
  62. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/api_client.py +8 -0
  63. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/groups.py +16 -0
  64. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/resource_servers.py +8 -0
  65. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/users.py +16 -0
  66. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/administrator_controller.py +8 -0
  67. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/api_keys.py +8 -0
  68. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_connector_groups.py +16 -0
  69. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_connectors.py +8 -0
  70. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_protection.py +56 -0
  71. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_segments_ba.py +8 -0
  72. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_segments_ba_v2.py +8 -0
  73. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_segments_inspection.py +8 -0
  74. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_segments_pra.py +8 -0
  75. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/application_segment.py +5 -0
  76. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/branch_connector_group.py +16 -0
  77. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/branch_connectors.py +8 -0
  78. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/browser_protection.py +8 -0
  79. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/c2c_ip_ranges.py +8 -0
  80. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cbi_banner.py +8 -0
  81. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cbi_certificate.py +8 -0
  82. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cbi_profile.py +8 -0
  83. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cbi_region.py +8 -0
  84. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cbi_zpa_profile.py +16 -0
  85. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/certificates.py +16 -0
  86. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cloud_connector_controller.py +8 -0
  87. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/cloud_connector_groups.py +16 -0
  88. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/config_override_controller.py +8 -0
  89. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/customer_domain.py +8 -0
  90. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/customer_dr_tool.py +8 -0
  91. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/customer_version_profile.py +8 -0
  92. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/emergency_access.py +8 -0
  93. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/enrollment_certificates.py +8 -0
  94. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/extranet_resource.py +8 -0
  95. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/idp.py +8 -0
  96. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/lss.py +8 -0
  97. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/machine_groups.py +16 -0
  98. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/managed_browser_profile.py +8 -0
  99. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/microtenants.py +8 -0
  100. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/npn_client_controller.py +8 -0
  101. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/policies.py +8 -0
  102. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/posture_profiles.py +8 -0
  103. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/pra_approval.py +8 -0
  104. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/pra_console.py +8 -0
  105. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/pra_credential.py +8 -0
  106. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/pra_credential_pool.py +8 -0
  107. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/pra_portal.py +8 -0
  108. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/private_cloud_controller.py +8 -0
  109. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/private_cloud_group.py +16 -0
  110. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/provisioning.py +8 -0
  111. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/role_controller.py +16 -0
  112. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/saml_attributes.py +16 -0
  113. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/scim_attributes.py +8 -0
  114. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/scim_groups.py +8 -0
  115. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/segment_groups.py +5 -0
  116. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/server_groups.py +8 -0
  117. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/servers.py +16 -0
  118. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/service_edge_group.py +8 -0
  119. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/service_edges.py +16 -8
  120. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/tag_group.py +8 -0
  121. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/tag_namespace.py +8 -0
  122. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/trusted_networks.py +8 -0
  123. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/user_portal_aup.py +8 -0
  124. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/user_portal_controller.py +8 -0
  125. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/user_portal_link.py +8 -0
  126. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/alarms.py +8 -0
  127. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/api_key.py +8 -0
  128. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/devices.py +32 -0
  129. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/groups_router.py +8 -0
  130. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/site.py +24 -0
  131. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/site2site_vpn.py +16 -0
  132. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/template_router.py +24 -0
  133. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/account_details.py +24 -0
  134. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/account_groups.py +16 -0
  135. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/admin_roles.py +8 -0
  136. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/admin_users.py +8 -0
  137. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/api_keys.py +8 -0
  138. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/ec_groups.py +24 -0
  139. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/forwarding_gateways.py +8 -0
  140. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/location_management.py +16 -0
  141. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/location_template.py +16 -0
  142. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/nw_service.py +8 -0
  143. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/provisioning_url.py +8 -0
  144. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/public_cloud_info.py +16 -0
  145. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/LICENSE.md +0 -0
  146. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/api_client.py +0 -0
  147. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/cache/__init__.py +0 -0
  148. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/cache/cache.py +0 -0
  149. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/cache/no_op_cache.py +0 -0
  150. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/cache/zscaler_cache.py +0 -0
  151. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/config/__init__.py +0 -0
  152. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/config/config_setter.py +0 -0
  153. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/config/config_validator.py +0 -0
  154. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/constants.py +0 -0
  155. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/error_messages.py +0 -0
  156. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/__init__.py +0 -0
  157. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/error.py +0 -0
  158. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/graphql_error.py +0 -0
  159. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/http_error.py +0 -0
  160. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/response_checker.py +0 -0
  161. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/errors/zscaler_api_error.py +0 -0
  162. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/exceptions/__init__.py +0 -0
  163. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/exceptions/exceptions.py +0 -0
  164. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/helpers.py +0 -0
  165. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/logger.py +0 -0
  166. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_client.py +0 -0
  167. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_collection.py +0 -0
  168. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_http_client.py +0 -0
  169. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_oauth_client.py +0 -0
  170. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/oneapi_object.py +0 -0
  171. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ratelimiter/__init__.py +0 -0
  172. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ratelimiter/ratelimiter.py +0 -0
  173. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/request_executor.py +0 -0
  174. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/types.py +0 -0
  175. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/user_agent.py +0 -0
  176. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/utils.py +0 -0
  177. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/__init__.py +0 -0
  178. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/legacy.py +0 -0
  179. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/models/__init__.py +0 -0
  180. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/models/policy_detection.py +0 -0
  181. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/policy_detection.py +0 -0
  182. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zaiguard/zaiguard_service.py +0 -0
  183. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/__init__.py +0 -0
  184. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/models/__init__.py +0 -0
  185. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/models/custom_apps.py +0 -0
  186. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/models/report_configs.py +0 -0
  187. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/report_configs.py +0 -0
  188. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zbi/zbi_service.py +0 -0
  189. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/__init__.py +0 -0
  190. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/company.py +0 -0
  191. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/entitlements.py +0 -0
  192. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/legacy.py +0 -0
  193. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/admin_roles.py +0 -0
  194. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/admin_user.py +0 -0
  195. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/devices.py +0 -0
  196. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/failopenpolicy.py +0 -0
  197. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/forwardingprofile.py +0 -0
  198. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/getcompanyinfo.py +0 -0
  199. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/manage_pass.py +0 -0
  200. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/secrets_otp.py +0 -0
  201. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/secrets_passwords.py +0 -0
  202. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/trustednetworks.py +0 -0
  203. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/webappservice.py +0 -0
  204. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/webpolicy.py +0 -0
  205. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/webprivacy.py +0 -0
  206. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  207. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  208. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/secrets.py +0 -0
  209. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/web_privacy.py +0 -0
  210. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zcc/zcc_service.py +0 -0
  211. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/__init__.py +0 -0
  212. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/legacy.py +0 -0
  213. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/administration.py +0 -0
  214. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/alerts.py +0 -0
  215. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/application_users.py +0 -0
  216. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/applications.py +0 -0
  217. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/call_quality_metrics.py +0 -0
  218. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/common.py +0 -0
  219. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/devices.py +0 -0
  220. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/snapshot.py +0 -0
  221. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/software_inventory.py +0 -0
  222. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/troubleshooting.py +0 -0
  223. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/models/users.py +0 -0
  224. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/snapshot.py +0 -0
  225. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zdx/zdx_service.py +0 -0
  226. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/__init__.py +0 -0
  227. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/models/__init__.py +0 -0
  228. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/models/common.py +0 -0
  229. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/models/findings.py +0 -0
  230. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/models/lookalike_domains.py +0 -0
  231. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/models/organizations.py +0 -0
  232. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zeasm/zeasm_service.py +0 -0
  233. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/__init__.py +0 -0
  234. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/activate.py +0 -0
  235. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/admin_users.py +0 -0
  236. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/advanced_settings.py +0 -0
  237. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/apptotal.py +0 -0
  238. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/atp_policy.py +0 -0
  239. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/audit_logs.py +0 -0
  240. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/authentication_settings.py +0 -0
  241. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/browser_control_settings.py +0 -0
  242. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/casb_dlp_rules.py +0 -0
  243. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/casb_malware_rules.py +0 -0
  244. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_app_instances.py +0 -0
  245. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_browser_isolation.py +0 -0
  246. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_firewall_dns.py +0 -0
  247. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_firewall_ips.py +0 -0
  248. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/cloud_firewall_rules.py +0 -0
  249. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/custom_file_types.py +0 -0
  250. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dedicated_ip_gateways.py +0 -0
  251. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dlp_resources.py +0 -0
  252. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/dlp_templates.py +0 -0
  253. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/end_user_notification.py +0 -0
  254. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/file_type_control_rule.py +0 -0
  255. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/ftp_control_policy.py +0 -0
  256. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/iot_report.py +0 -0
  257. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/legacy.py +0 -0
  258. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/malware_protection_policy.py +0 -0
  259. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/mobile_threat_settings.py +0 -0
  260. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/__init__.py +0 -0
  261. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/activation.py +0 -0
  262. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/admin_roles.py +0 -0
  263. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/admin_users.py +0 -0
  264. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/advanced_settings.py +0 -0
  265. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  266. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/alert_subscriptions.py +0 -0
  267. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/apptotal.py +0 -0
  268. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/authentication_settings.py +0 -0
  269. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/bandwidth_classes.py +0 -0
  270. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
  271. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/browser_control_settings.py +0 -0
  272. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/casb_dlp_rules.py +0 -0
  273. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/casb_malware_rules.py +0 -0
  274. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_app_instances.py +0 -0
  275. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_app_policy.py +0 -0
  276. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
  277. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
  278. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
  279. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
  280. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
  281. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
  282. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
  283. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
  284. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
  285. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
  286. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
  287. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
  288. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_nss.py +0 -0
  289. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloud_to_cloud_ir.py +0 -0
  290. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/cloudappcontrol.py +0 -0
  291. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/common.py +0 -0
  292. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/custom_file_types.py +0 -0
  293. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
  294. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/device_groups.py +0 -0
  295. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/devices.py +0 -0
  296. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dlp_dictionary.py +0 -0
  297. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dlp_engine.py +0 -0
  298. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dlp_resources.py +0 -0
  299. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dlp_templates.py +0 -0
  300. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dlp_web_rules.py +0 -0
  301. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/dns_gateways.py +0 -0
  302. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/endusernotification.py +0 -0
  303. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/filetyperules.py +0 -0
  304. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/forwarding_control_policy.py +0 -0
  305. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/ftp_control_policy.py +0 -0
  306. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/gre_recommended_list.py +0 -0
  307. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/gre_tunnel_info.py +0 -0
  308. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/gre_tunnels.py +0 -0
  309. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/gre_vips.py +0 -0
  310. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/intermediate_certificates.py +0 -0
  311. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/iotreport.py +0 -0
  312. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/ipv6_config.py +0 -0
  313. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/location_group.py +0 -0
  314. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/location_management.py +0 -0
  315. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/malware_protection_settings.py +0 -0
  316. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/mobile_threat_settings.py +0 -0
  317. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/nat_control_policy.py +0 -0
  318. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/nss_servers.py +0 -0
  319. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/organization_information.py +0 -0
  320. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/pac_files.py +0 -0
  321. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/proxies.py +0 -0
  322. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/proxy_gateways.py +0 -0
  323. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/remoteassistance.py +0 -0
  324. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/risk_profiles.py +0 -0
  325. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/rule_labels.py +0 -0
  326. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/saas_security_api.py +0 -0
  327. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/sandbox.py +0 -0
  328. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/sandboxrules.py +0 -0
  329. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/security_policy_settings.py +0 -0
  330. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/shadow_it_report.py +0 -0
  331. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
  332. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/subclouds.py +0 -0
  333. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/system_audit.py +0 -0
  334. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
  335. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/time_intervals.py +0 -0
  336. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_capture.py +0 -0
  337. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_datacenters.py +0 -0
  338. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
  339. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_extranet.py +0 -0
  340. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_static_ip.py +0 -0
  341. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
  342. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  343. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/url_filtering_rules.py +0 -0
  344. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/urlcategory.py +0 -0
  345. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/user_management.py +0 -0
  346. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/vzen_clusters.py +0 -0
  347. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/vzen_nodes.py +0 -0
  348. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/workload_groups.py +0 -0
  349. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/models/zpa_gateway.py +0 -0
  350. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/nat_control_policy.py +0 -0
  351. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/organization_information.py +0 -0
  352. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/policy_export.py +0 -0
  353. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/remote_assistance.py +0 -0
  354. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/sandbox.py +0 -0
  355. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/sandbox_rules.py +0 -0
  356. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/security_policy_settings.py +0 -0
  357. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/ssl_inspection_rules.py +0 -0
  358. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/system_audit.py +0 -0
  359. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/tenancy_restriction_profile.py +0 -0
  360. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/url_categories.py +0 -0
  361. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/url_filtering.py +0 -0
  362. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/workload_groups.py +0 -0
  363. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zia/zia_service.py +0 -0
  364. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/__init__.py +0 -0
  365. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/api_client.py +0 -0
  366. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/common.py +0 -0
  367. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/groups.py +0 -0
  368. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/resource_servers.py +0 -0
  369. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/user_entitlement.py +0 -0
  370. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/models/users.py +0 -0
  371. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/user_entitlement.py +0 -0
  372. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zid/zid_service.py +0 -0
  373. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/__init__.py +0 -0
  374. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/cyber_security.py +0 -0
  375. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/firewall.py +0 -0
  376. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/iot.py +0 -0
  377. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/models/__init__.py +0 -0
  378. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/models/common.py +0 -0
  379. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/models/enums.py +0 -0
  380. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/models/inputs.py +0 -0
  381. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/saas_security.py +0 -0
  382. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/shadow_it.py +0 -0
  383. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/web_traffic.py +0 -0
  384. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zins/zins_service.py +0 -0
  385. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/__init__.py +0 -0
  386. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/agent_groups.py +0 -0
  387. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/agents.py +0 -0
  388. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/app_catalog.py +0 -0
  389. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/app_zones.py +0 -0
  390. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/models/__init__.py +0 -0
  391. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/models/common.py +0 -0
  392. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/models/enums.py +0 -0
  393. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/models/inputs.py +0 -0
  394. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/nonces.py +0 -0
  395. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/policy_rules.py +0 -0
  396. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/resource_groups.py +0 -0
  397. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/resources.py +0 -0
  398. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/tags.py +0 -0
  399. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zms/zms_service.py +0 -0
  400. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/__init__.py +0 -0
  401. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/admin_sso_controller.py +0 -0
  402. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_connector_schedule.py +0 -0
  403. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/app_segment_by_type.py +0 -0
  404. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/client_settings.py +0 -0
  405. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/customer_controller.py +0 -0
  406. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/legacy.py +0 -0
  407. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/location_controller.py +0 -0
  408. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/administrator_controller.py +0 -0
  409. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/api_keys.py +0 -0
  410. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/app_connector_groups.py +0 -0
  411. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/app_connector_schedule.py +0 -0
  412. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/app_connectors.py +0 -0
  413. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
  414. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/app_protection_profile.py +0 -0
  415. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/application_segment.py +0 -0
  416. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/application_segment_lb.py +0 -0
  417. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/application_servers.py +0 -0
  418. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/branch_connectors.py +0 -0
  419. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/browser_protection.py +0 -0
  420. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/c2c_ip_ranges.py +0 -0
  421. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cbi_banner.py +0 -0
  422. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cbi_certificate.py +0 -0
  423. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cbi_profile.py +0 -0
  424. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cbi_region.py +0 -0
  425. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
  426. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/certificates.py +0 -0
  427. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/client_settings.py +0 -0
  428. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cloud_connector_controller.py +0 -0
  429. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
  430. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/common.py +0 -0
  431. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/config_override_controller.py +0 -0
  432. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/customer_controller.py +0 -0
  433. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/customer_domain.py +0 -0
  434. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/customer_dr_tool.py +0 -0
  435. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/customer_version_profile.py +0 -0
  436. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/emergency_access.py +0 -0
  437. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/enrollment_certificates.py +0 -0
  438. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/idp.py +0 -0
  439. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/lss.py +0 -0
  440. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/machine_groups.py +0 -0
  441. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/managed_browser_profile.py +0 -0
  442. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/microtenants.py +0 -0
  443. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/npn_client_controller.py +0 -0
  444. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/oauth2_user_code.py +0 -0
  445. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
  446. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
  447. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/posture_profiles.py +0 -0
  448. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/pra_approval.py +0 -0
  449. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/pra_console.py +0 -0
  450. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
  451. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/pra_credential.py +0 -0
  452. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/pra_portal.py +0 -0
  453. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/private_cloud_controller.py +0 -0
  454. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/private_cloud_group.py +0 -0
  455. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/provisioning_keys.py +0 -0
  456. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/role_controller.py +0 -0
  457. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/saml_attributes.py +0 -0
  458. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/scim_attributes.py +0 -0
  459. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/scim_groups.py +0 -0
  460. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/segment_group.py +0 -0
  461. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/server_group.py +0 -0
  462. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/service_edge_groups.py +0 -0
  463. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/service_edge_schedule.py +0 -0
  464. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/service_edges.py +0 -0
  465. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/stepup_auth_level.py +0 -0
  466. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/tag_group.py +0 -0
  467. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/tag_key.py +0 -0
  468. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/tag_namespace.py +0 -0
  469. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/trusted_network.py +0 -0
  470. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/user_portal_aup.py +0 -0
  471. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/user_portal_controller.py +0 -0
  472. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/user_portal_link.py +0 -0
  473. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/models/zia_customer_config.py +0 -0
  474. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/oauth2_user_code.py +0 -0
  475. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/service_edge_schedule.py +0 -0
  476. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/stepup_auth_level.py +0 -0
  477. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/tag_key.py +0 -0
  478. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/workload_tag_group.py +0 -0
  479. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/zia_customer_config.py +0 -0
  480. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zpa/zpa_service.py +0 -0
  481. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/__init__.py +0 -0
  482. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/app_connector_config.py +0 -0
  483. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/legacy.py +0 -0
  484. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/logs.py +0 -0
  485. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/__init__.py +0 -0
  486. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/alarms.py +0 -0
  487. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/api_key.py +0 -0
  488. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/app_connector_config.py +0 -0
  489. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/common.py +0 -0
  490. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/devices.py +0 -0
  491. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/groups_router.py +0 -0
  492. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/logs.py +0 -0
  493. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/policy_comments.py +0 -0
  494. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/ransomware_kill.py +0 -0
  495. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/site.py +0 -0
  496. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/site2site_vpn.py +0 -0
  497. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/models/template_router.py +0 -0
  498. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/policy_comments.py +0 -0
  499. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/ransomware_kill.py +0 -0
  500. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztb/ztb_service.py +0 -0
  501. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/__init__.py +0 -0
  502. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/activation.py +0 -0
  503. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/discovery_service.py +0 -0
  504. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/forwarding_rules.py +0 -0
  505. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/ip_destination_groups.py +0 -0
  506. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/ip_groups.py +0 -0
  507. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/ip_source_groups.py +0 -0
  508. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/legacy.py +0 -0
  509. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/account_groups.py +0 -0
  510. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/activation.py +0 -0
  511. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/admin_roles.py +0 -0
  512. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/admin_users.py +0 -0
  513. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/api_keys.py +0 -0
  514. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/common.py +0 -0
  515. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/discovery_service.py +0 -0
  516. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/ec_group_vm.py +0 -0
  517. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/ecgroup.py +0 -0
  518. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/forwarding_gateways.py +0 -0
  519. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/forwarding_rules.py +0 -0
  520. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/ip_destination_groups.py +0 -0
  521. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/ip_groups.py +0 -0
  522. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/ip_source_groups.py +0 -0
  523. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/location_management.py +0 -0
  524. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/location_templates.py +0 -0
  525. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/nw_service.py +0 -0
  526. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/nw_service_groups.py +0 -0
  527. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/provisioning_url.py +0 -0
  528. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/public_cloud_info.py +0 -0
  529. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
  530. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/workload_groups.py +0 -0
  531. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/models/zpa_resources.py +0 -0
  532. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/nw_service_groups.py +0 -0
  533. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/workload_groups.py +0 -0
  534. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/ztw/ztw_service.py +0 -0
  535. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/__init__.py +0 -0
  536. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/audit_logs.py +0 -0
  537. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/dlp_incidents.py +0 -0
  538. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/legacy.py +0 -0
  539. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/audit_logs.py +0 -0
  540. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/change_history.py +0 -0
  541. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/common.py +0 -0
  542. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/generated_tickets.py +0 -0
  543. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/incident_details.py +0 -0
  544. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/incident_evidence.py +0 -0
  545. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/incident_group_search.py +0 -0
  546. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/incident_search.py +0 -0
  547. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/models/incident_trigger.py +0 -0
  548. {zscaler_sdk_python-1.9.18 → zscaler_sdk_python-1.9.20}/zscaler/zwa/zwa_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zscaler-sdk-python
3
- Version: 1.9.18
3
+ Version: 1.9.20
4
4
  Summary: Official Python SDK for the Zscaler Products
5
5
  Home-page: https://github.com/zscaler/zscaler-sdk-python
6
6
  License: MIT
@@ -23,6 +23,7 @@ Requires-Dist: PyJWT (>=2.10.1)
23
23
  Requires-Dist: aenum (>=3.1.11)
24
24
  Requires-Dist: arrow (>=1.3.0)
25
25
  Requires-Dist: cryptography (>=45.0.2)
26
+ Requires-Dist: jmespath (>=1.0.0)
26
27
  Requires-Dist: jwcrypto (>=1.5.6)
27
28
  Requires-Dist: pydash (>=8.0.3)
28
29
  Requires-Dist: python-box (>=7.3.0)
@@ -63,6 +64,7 @@ Description-Content-Type: text/markdown
63
64
  * [Zscaler Legacy API Framework](#zscaler-legacy-api-framework)
64
65
  * [Configuration reference](#configuration-reference)
65
66
  * [Pagination](#pagination)
67
+ * [Client-Side Filtering with JMESPath](#client-side-filtering-with-jmespath)
66
68
  * [Contributing](#contributing)
67
69
 
68
70
  The Zscaler SDK for Python includes functionality to accelerate development via [Python](https://www.python.org/). This SDK can be
@@ -745,6 +747,95 @@ except StopIteration:
745
747
  print("All data fetched.")
746
748
  ```
747
749
 
750
+ ### Client-Side Filtering with JMESPath
751
+
752
+ 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.
753
+
754
+ 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.
755
+
756
+ #### Basic Filtering
757
+
758
+ ```py
759
+ # Fetch users and filter admin users client-side
760
+ users, resp, err = client.zia.user_management.list_users()
761
+ admin_users = resp.search("[?adminUser==`true`]")
762
+ print(f"Found {len(admin_users)} admin users")
763
+ ```
764
+
765
+ #### Projection (Selecting Specific Fields)
766
+
767
+ ```py
768
+ # Extract only names and emails
769
+ users, resp, err = client.zia.user_management.list_users()
770
+ names_emails = resp.search("[*].{name: name, email: email}")
771
+ for item in names_emails:
772
+ print(f"{item['name']}: {item['email']}")
773
+ ```
774
+
775
+ #### Combined Filtering and Projection
776
+
777
+ ```py
778
+ # Filter by role and project specific fields
779
+ users, resp, err = client.zia.user_management.list_users()
780
+ result = resp.search("[?adminUser==`true`].{name: name, id: id}")
781
+ ```
782
+
783
+ #### Nested Field Filtering
784
+
785
+ ```py
786
+ # Filter users by department name
787
+ users, resp, err = client.zia.user_management.list_users()
788
+ eng_users = resp.search("[?department.name=='Engineering'].name")
789
+ ```
790
+
791
+ #### Using with Paginated Results
792
+
793
+ `.search()` operates on the current page. To filter across all pages, apply it to each page as you paginate:
794
+
795
+ ```py
796
+ users, resp, err = client.zia.user_management.list_users(
797
+ query_params={"page_size": 1000}
798
+ )
799
+ all_admins = resp.search("[?adminUser==`true`]")
800
+
801
+ while resp.has_next():
802
+ next_page, resp, err = resp.next()
803
+ if err:
804
+ break
805
+ if next_page:
806
+ all_admins.extend(resp.search("[?adminUser==`true`]"))
807
+
808
+ print(f"Total admins across all pages: {len(all_admins)}")
809
+ ```
810
+
811
+ #### Using with Wrapped Responses
812
+
813
+ For APIs that wrap results in a named key (e.g., ZDX `items`, ZBI `reports`), reference the key in the expression:
814
+
815
+ ```py
816
+ # ZDX software inventory
817
+ items, resp, err = client.zdx.software.list_inventory()
818
+ zscaler_sw = resp.search(
819
+ "items[?vendor=='Zscaler'].{name: software_name, devices: device_total}"
820
+ )
821
+
822
+ # ZBI reports
823
+ reports, resp, err = client.zbi.reports.list_reports(report_type="APPLICATION")
824
+ completed = resp.search("reports[?status=='COMPLETED']")
825
+ ```
826
+
827
+ #### JMESPath Built-in Functions
828
+
829
+ JMESPath supports built-in functions like `length()`, `sort_by()`, `max_by()`, and more:
830
+
831
+ ```py
832
+ # Users with at least one group assigned
833
+ users, resp, err = client.zia.user_management.list_users()
834
+ with_groups = resp.search("[?length(groups || `[]`) > `0`]")
835
+ ```
836
+
837
+ For the full JMESPath specification and function reference, see [jmespath.org](https://jmespath.org/).
838
+
748
839
  ## Logging
749
840
 
750
841
  The Zscaler SDK Python, provides robust logging for debug purposes.
@@ -25,6 +25,7 @@
25
25
  * [Zscaler Legacy API Framework](#zscaler-legacy-api-framework)
26
26
  * [Configuration reference](#configuration-reference)
27
27
  * [Pagination](#pagination)
28
+ * [Client-Side Filtering with JMESPath](#client-side-filtering-with-jmespath)
28
29
  * [Contributing](#contributing)
29
30
 
30
31
  The Zscaler SDK for Python includes functionality to accelerate development via [Python](https://www.python.org/). This SDK can be
@@ -707,6 +708,95 @@ except StopIteration:
707
708
  print("All data fetched.")
708
709
  ```
709
710
 
711
+ ### Client-Side Filtering with JMESPath
712
+
713
+ 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.
714
+
715
+ 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.
716
+
717
+ #### Basic Filtering
718
+
719
+ ```py
720
+ # Fetch users and filter admin users client-side
721
+ users, resp, err = client.zia.user_management.list_users()
722
+ admin_users = resp.search("[?adminUser==`true`]")
723
+ print(f"Found {len(admin_users)} admin users")
724
+ ```
725
+
726
+ #### Projection (Selecting Specific Fields)
727
+
728
+ ```py
729
+ # Extract only names and emails
730
+ users, resp, err = client.zia.user_management.list_users()
731
+ names_emails = resp.search("[*].{name: name, email: email}")
732
+ for item in names_emails:
733
+ print(f"{item['name']}: {item['email']}")
734
+ ```
735
+
736
+ #### Combined Filtering and Projection
737
+
738
+ ```py
739
+ # Filter by role and project specific fields
740
+ users, resp, err = client.zia.user_management.list_users()
741
+ result = resp.search("[?adminUser==`true`].{name: name, id: id}")
742
+ ```
743
+
744
+ #### Nested Field Filtering
745
+
746
+ ```py
747
+ # Filter users by department name
748
+ users, resp, err = client.zia.user_management.list_users()
749
+ eng_users = resp.search("[?department.name=='Engineering'].name")
750
+ ```
751
+
752
+ #### Using with Paginated Results
753
+
754
+ `.search()` operates on the current page. To filter across all pages, apply it to each page as you paginate:
755
+
756
+ ```py
757
+ users, resp, err = client.zia.user_management.list_users(
758
+ query_params={"page_size": 1000}
759
+ )
760
+ all_admins = resp.search("[?adminUser==`true`]")
761
+
762
+ while resp.has_next():
763
+ next_page, resp, err = resp.next()
764
+ if err:
765
+ break
766
+ if next_page:
767
+ all_admins.extend(resp.search("[?adminUser==`true`]"))
768
+
769
+ print(f"Total admins across all pages: {len(all_admins)}")
770
+ ```
771
+
772
+ #### Using with Wrapped Responses
773
+
774
+ For APIs that wrap results in a named key (e.g., ZDX `items`, ZBI `reports`), reference the key in the expression:
775
+
776
+ ```py
777
+ # ZDX software inventory
778
+ items, resp, err = client.zdx.software.list_inventory()
779
+ zscaler_sw = resp.search(
780
+ "items[?vendor=='Zscaler'].{name: software_name, devices: device_total}"
781
+ )
782
+
783
+ # ZBI reports
784
+ reports, resp, err = client.zbi.reports.list_reports(report_type="APPLICATION")
785
+ completed = resp.search("reports[?status=='COMPLETED']")
786
+ ```
787
+
788
+ #### JMESPath Built-in Functions
789
+
790
+ JMESPath supports built-in functions like `length()`, `sort_by()`, `max_by()`, and more:
791
+
792
+ ```py
793
+ # Users with at least one group assigned
794
+ users, resp, err = client.zia.user_management.list_users()
795
+ with_groups = resp.search("[?length(groups || `[]`) > `0`]")
796
+ ```
797
+
798
+ For the full JMESPath specification and function reference, see [jmespath.org](https://jmespath.org/).
799
+
710
800
  ## Logging
711
801
 
712
802
  The Zscaler SDK Python, provides robust logging for debug purposes.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "1.9.18"
3
+ version = "1.9.20"
4
4
  description = "Official Python SDK for the Zscaler Products"
5
5
  authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
6
6
  license = "MIT"
@@ -40,6 +40,7 @@ jwcrypto = ">=1.5.6"
40
40
  aenum = ">=3.1.11"
41
41
  pydash = ">=8.0.3"
42
42
  arrow = ">=1.3.0"
43
+ jmespath = ">=1.0.0"
43
44
 
44
45
  [tool.poetry.group.dev.dependencies]
45
46
  black = ">=24.3.0"
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "1.9.18"
32
+ __version__ = "1.9.20"
33
33
 
34
34
 
35
35
  from zscaler.oneapi_client import Client as ZscalerClient # noqa
@@ -3,6 +3,7 @@ import json
3
3
  import logging
4
4
  import uuid
5
5
  import requests
6
+ import jmespath
6
7
 
7
8
  logger = logging.getLogger(__name__)
8
9
 
@@ -14,9 +15,9 @@ class ZscalerAPIResponse:
14
15
  """
15
16
 
16
17
  SERVICE_PAGE_LIMITS = {
17
- "ZPA": {"default": 100, "max": 500},
18
- "ZIA": {"default": 500, "max": 10000},
19
- "ZDX": {"default": 10, "min": 1},
18
+ "zpa": {"default": 100, "max": 500},
19
+ "zia": {"default": 500, "max": 10000},
20
+ "zdx": {"default": 10, "min": 1},
20
21
  }
21
22
 
22
23
  def __init__(
@@ -51,10 +52,9 @@ class ZscalerAPIResponse:
51
52
 
52
53
  self._service_type = service_type
53
54
  self._offset = self._params.get("offset", 0)
54
- self._limit = self.validate_page_size(self._params.get("limit"), service_type)
55
55
  self._next_offset = None
56
56
  self._list = []
57
- self._is_flat_list_response = False # Track if response is a flat list (no pagination metadata)
57
+ self._is_flat_list_response = False
58
58
 
59
59
  if all_entries:
60
60
  self._params["allEntries"] = True
@@ -69,21 +69,22 @@ class ZscalerAPIResponse:
69
69
  if end_time:
70
70
  self._params["endTime"] = end_time
71
71
 
72
- # If service is ZIA, ensure the pagination parameter is "pageSize" in camelCase
73
72
  if self._service_type == "zia":
73
+ # Normalize page_size → pageSize if still in snake_case
74
74
  if "page_size" in self._params:
75
75
  self._params["pageSize"] = self._params.pop("page_size")
76
-
77
- if self._service_type == "zia":
78
76
  # If user supplied pageNumber, initialize self._page accordingly
79
77
  if "pageNumber" in self._params:
80
78
  try:
81
79
  self._page = int(self._params["pageNumber"])
82
80
  except Exception:
83
81
  self._page = 1
84
- # Always remove 'page' if present for ZIA
85
82
  self._params.pop("page", None)
86
- # logger.debug(f"[DEBUG] __init__ params after ZIA normalization: {self._params}")
83
+
84
+ # Resolve the user-supplied page size from the correct param key per service.
85
+ # ZIA uses "pageSize"; ZPA uses "pagesize"; others use "limit".
86
+ raw_page_size = self._params.get("pageSize") or self._params.get("pagesize") or self._params.get("limit")
87
+ self._limit = self.validate_page_size(raw_page_size, service_type)
87
88
 
88
89
  if res_details:
89
90
  content_type = res_details.headers.get("Content-Type", "").lower()
@@ -160,20 +161,19 @@ class ZscalerAPIResponse:
160
161
  self._body = json.loads(response_body)
161
162
 
162
163
  if isinstance(self._body, list):
163
- # Handle direct list responses (ZIA, ZPA simple lists, etc.)
164
- # A flat list response means the API returned all results in one response
165
- # without pagination metadata - pagination should NOT continue
166
164
  self._list = self._body
167
- self._is_flat_list_response = True # Mark as flat list - no pagination
168
- # Check if this is a list of simple types (strings, numbers, etc.) vs dicts
169
- # If it's a list of simple types, skip the cleaning logic
165
+
166
+ # ZIA returns flat JSON arrays for paginated list endpoints.
167
+ # Do NOT mark those as flat-list (non-paginated); let the
168
+ # page-size heuristic in _has_next() drive pagination instead.
169
+ if self._service_type == "zia":
170
+ self._is_flat_list_response = False
171
+ else:
172
+ self._is_flat_list_response = True
173
+
170
174
  if self._body and len(self._body) > 0 and not isinstance(self._body[0], dict):
171
- # This is a list of simple types (e.g., ["CRITICAL", "HIGH", ...])
172
- # Don't filter it - keep the original list as-is
173
- # No cleaning needed for simple types
174
175
  pass
175
176
  elif self._body and len(self._body) > 0:
176
- # This is a list of dicts - apply cleaning logic
177
177
  cleaned_list = []
178
178
  for item in self._list:
179
179
  if isinstance(item, dict):
@@ -181,8 +181,7 @@ class ZscalerAPIResponse:
181
181
  else:
182
182
  logger.warning("Non-dict item found in response list, skipping: %s", item)
183
183
  self._list = cleaned_list
184
- # If list is empty, _list is already set to empty list, no cleaning needed
185
- elif self._service_type == "ZDX":
184
+ elif self._service_type == "zdx":
186
185
  self._list = self._body.get("items", [])
187
186
  self._next_offset = self._body.get("next_offset")
188
187
  elif self._service_type == "zidentity":
@@ -199,13 +198,11 @@ class ZscalerAPIResponse:
199
198
  self._total_results = self._body.get("total_results", 0)
200
199
  self._next_page = self._body.get("next_page")
201
200
  self._prev_page = self._body.get("prev_page")
202
- elif self._service_type == "ZCC":
201
+ elif self._service_type == "zcc":
203
202
  # ZCC can return either a single object or a list of objects
204
203
  if isinstance(self._body, dict):
205
- # If it's a single object, wrap it in a list
206
204
  self._list = [self._body]
207
205
  else:
208
- # If it's already a list, use it as is
209
206
  self._list = self._body if isinstance(self._body, list) else []
210
207
  elif self._service_type == "bi":
211
208
  # ZBI list reports returns {"reportType": "...", "reports": [...]}
@@ -237,7 +234,7 @@ class ZscalerAPIResponse:
237
234
  else:
238
235
  # ZPA and possibly other services use a dict with "list" field
239
236
  self._list = self._body.get("list", [])
240
- if self._service_type == "ZPA":
237
+ if self._service_type == "zpa":
241
238
  self._total_pages = int(self._body.get("totalPages", 1))
242
239
  self._total_count = int(self._body.get("totalCount", 0))
243
240
 
@@ -261,7 +258,7 @@ class ZscalerAPIResponse:
261
258
  """
262
259
  logger.debug("Fetching current page results")
263
260
 
264
- if self._service_type.upper() == "ZCC" and self._type:
261
+ if self._service_type == "zcc" and self._type:
265
262
  try:
266
263
  return [self._type(item) for item in self._list if isinstance(item, dict)]
267
264
  except Exception as wrap_error:
@@ -270,6 +267,49 @@ class ZscalerAPIResponse:
270
267
 
271
268
  return self._list
272
269
 
270
+ def search(self, expression: str) -> List[Any]:
271
+ """
272
+ Applies a JMESPath expression to the current page of results for
273
+ client-side filtering and projection.
274
+
275
+ The expression is first evaluated against the full response body
276
+ (useful for expressions that reference top-level keys, e.g.
277
+ ``"users[?name=='Alice']"``). If the body is a plain list, the
278
+ expression is applied directly to the list instead.
279
+
280
+ Args:
281
+ expression: A JMESPath expression string.
282
+
283
+ Returns:
284
+ A list of matching items (or projected dicts/values). Returns
285
+ an empty list when nothing matches.
286
+
287
+ Raises:
288
+ jmespath.exceptions.ParseError: If *expression* is not valid
289
+ JMESPath syntax.
290
+
291
+ Examples:
292
+ >>> items, resp, err = client.zia.user_management.list_users()
293
+ >>> admins = resp.search("[?adminUser==`true`]")
294
+
295
+ >>> items, resp, err = client.zdx.software.list_inventory()
296
+ >>> zscaler = resp.search(
297
+ ... "items[?vendor=='Zscaler'].{name: software_name}"
298
+ ... )
299
+ """
300
+ compiled = jmespath.compile(expression)
301
+
302
+ # Apply against the full body first (handles expressions that target
303
+ # a named key inside the response envelope, e.g. "reports[?x>1]").
304
+ target = self._body if self._body is not None else self._list
305
+ result = compiled.search(target)
306
+
307
+ if result is None:
308
+ return []
309
+ if isinstance(result, list):
310
+ return result
311
+ return [result]
312
+
273
313
  def has_next(self) -> bool:
274
314
  """
275
315
  Returns True if there are more pages to fetch, False otherwise.
@@ -303,10 +343,10 @@ class ZscalerAPIResponse:
303
343
  logger.debug("No more pages to fetch")
304
344
  return [], None
305
345
 
306
- if self._service_type.upper() == "ZDX":
346
+ if self._service_type == "zdx":
307
347
  logger.debug("[DEBUG] Taking ZDX pagination branch.")
308
348
  self._params["offset"] = self._next_offset
309
- elif self._service_type.upper() == "ZIA":
349
+ elif self._service_type == "zia":
310
350
  logger.debug("[DEBUG] Taking ZIA pagination branch.")
311
351
  self._page += 1
312
352
  self._params["page"] = self._page
@@ -359,13 +399,11 @@ class ZscalerAPIResponse:
359
399
  logger.debug("Has next page: False (flat list response - all results returned in single response)")
360
400
  return False
361
401
 
362
- if self._service_type == "ZPA":
363
- # More pages if current page < total_pages
402
+ if self._service_type == "zpa":
364
403
  has_next = self._page < self._total_pages
365
404
  logger.debug("Has next page for ZPA: %s (page %d of %d)", has_next, self._page, self._total_pages)
366
405
  return has_next
367
- elif self._service_type == "ZDX":
368
- # More pages if next_offset is not None
406
+ elif self._service_type == "zdx":
369
407
  has_next = self._next_offset is not None
370
408
  logger.debug("Has next page for ZDX: %s", has_next)
371
409
  return has_next
@@ -58,6 +58,14 @@ class CustomAppsAPI(APIClient):
58
58
  ... print(f"Error: {err}")
59
59
  >>> for app in apps:
60
60
  ... print(app.as_dict())
61
+
62
+ Client-side filtering with JMESPath:
63
+
64
+ The response object supports client-side filtering and
65
+ projection via ``resp.search(expression)``. See the
66
+ `JMESPath documentation <https://jmespath.org/>`_ for
67
+ expression syntax.
68
+
61
69
  """
62
70
  http_method = "GET"
63
71
  api_url = format_url(f"""
@@ -80,6 +80,14 @@ class ReportsAPI(APIClient):
80
80
  ... print(f"Error: {err}")
81
81
  >>> for r in reports:
82
82
  ... print(r)
83
+
84
+ Client-side filtering with JMESPath:
85
+
86
+ The response object supports client-side filtering and
87
+ projection via ``resp.search(expression)``. See the
88
+ `JMESPath documentation <https://jmespath.org/>`_ for
89
+ expression syntax.
90
+
83
91
  """
84
92
  http_method = "GET"
85
93
  api_url = format_url(f"""
@@ -53,6 +53,14 @@ class AdminUserAPI(APIClient):
53
53
  ... print(f"Total admin users found: {len(user_list)}")
54
54
  ... for user in user_list:
55
55
  ... print(user.as_dict())
56
+
57
+ Client-side filtering with JMESPath:
58
+
59
+ The response object supports client-side filtering and
60
+ projection via ``resp.search(expression)``. See the
61
+ `JMESPath documentation <https://jmespath.org/>`_ for
62
+ expression syntax.
63
+
56
64
  """
57
65
  http_method = "get".upper()
58
66
  api_url = format_url(f"""
@@ -147,6 +155,14 @@ class AdminUserAPI(APIClient):
147
155
  ... print(f"Total admin roles found: {len(role_list)}")
148
156
  ... for role in role_list:
149
157
  ... print(role.as_dict())
158
+
159
+ Client-side filtering with JMESPath:
160
+
161
+ The response object supports client-side filtering and
162
+ projection via ``resp.search(expression)``. See the
163
+ `JMESPath documentation <https://jmespath.org/>`_ for
164
+ expression syntax.
165
+
150
166
  """
151
167
  http_method = "get".upper()
152
168
  api_url = format_url(f"""
@@ -323,6 +323,14 @@ class DevicesAPI(APIClient):
323
323
  ... print(f"Total devices found: {len(device_list)}")
324
324
  ... for device in device_list:
325
325
  ... print(device.as_dict())
326
+
327
+ Client-side filtering with JMESPath:
328
+
329
+ The response object supports client-side filtering and
330
+ projection via ``resp.search(expression)``. See the
331
+ `JMESPath documentation <https://jmespath.org/>`_ for
332
+ expression syntax.
333
+
326
334
  """
327
335
  http_method = "get".upper()
328
336
  api_url = format_url(f"""
@@ -50,6 +50,14 @@ class FailOpenPolicyAPI(APIClient):
50
50
  ... return
51
51
  ... for policy in policy_list:
52
52
  ... print(policy.as_dict())
53
+
54
+ Client-side filtering with JMESPath:
55
+
56
+ The response object supports client-side filtering and
57
+ projection via ``resp.search(expression)``. See the
58
+ `JMESPath documentation <https://jmespath.org/>`_ for
59
+ expression syntax.
60
+
53
61
  """
54
62
  http_method = "get".upper()
55
63
  api_url = format_url(f"""
@@ -51,6 +51,14 @@ class ForwardingProfileAPI(APIClient):
51
51
  ... return
52
52
  ... for profile in profile_list:
53
53
  ... print(profile.as_dict())
54
+
55
+ Client-side filtering with JMESPath:
56
+
57
+ The response object supports client-side filtering and
58
+ projection via ``resp.search(expression)``. See the
59
+ `JMESPath documentation <https://jmespath.org/>`_ for
60
+ expression syntax.
61
+
54
62
  """
55
63
  http_method = "get".upper()
56
64
  api_url = format_url(f"""
@@ -52,6 +52,14 @@ class TrustedNetworksAPI(APIClient):
52
52
  ... print(f"Total trusted networks found: {len(network_list)}")
53
53
  ... for network in network_list:
54
54
  ... print(network.as_dict())
55
+
56
+ Client-side filtering with JMESPath:
57
+
58
+ The response object supports client-side filtering and
59
+ projection via ``resp.search(expression)``. See the
60
+ `JMESPath documentation <https://jmespath.org/>`_ for
61
+ expression syntax.
62
+
55
63
  """
56
64
  http_method = "get".upper()
57
65
  api_url = format_url(f"""
@@ -49,6 +49,14 @@ class WebAppServiceAPI(APIClient):
49
49
  ... else:
50
50
  ... for policy in policies:
51
51
  ... print(policy)
52
+
53
+ Client-side filtering with JMESPath:
54
+
55
+ The response object supports client-side filtering and
56
+ projection via ``resp.search(expression)``. See the
57
+ `JMESPath documentation <https://jmespath.org/>`_ for
58
+ expression syntax.
59
+
52
60
  """
53
61
  http_method = "get".upper()
54
62
  api_url = format_url(f"""
@@ -59,6 +59,14 @@ class WebPolicyAPI(APIClient):
59
59
  ... return
60
60
  ... for policy in policy_list:
61
61
  ... print(policy.as_dict())
62
+
63
+ Client-side filtering with JMESPath:
64
+
65
+ The response object supports client-side filtering and
66
+ projection via ``resp.search(expression)``. See the
67
+ `JMESPath documentation <https://jmespath.org/>`_ for
68
+ expression syntax.
69
+
62
70
  """
63
71
  http_method = "get".upper()
64
72
  api_url = format_url(f"""
@@ -65,6 +65,14 @@ class AdminAPI(APIClient):
65
65
  ... print(f"Total department found: {len(dept_list)}")
66
66
  ... for dept in dept_list:
67
67
  ... print(dept.as_dict())
68
+
69
+ Client-side filtering with JMESPath:
70
+
71
+ The response object supports client-side filtering and
72
+ projection via ``resp.search(expression)``. See the
73
+ `JMESPath documentation <https://jmespath.org/>`_ for
74
+ expression syntax.
75
+
68
76
  """
69
77
  http_method = "get".upper()
70
78
  api_url = format_url(f"""
@@ -130,6 +138,14 @@ class AdminAPI(APIClient):
130
138
  ... print(f"Total location found: {len(locations_list)}")
131
139
  ... for location in locations_list:
132
140
  ... print(location.as_dict())
141
+
142
+ Client-side filtering with JMESPath:
143
+
144
+ The response object supports client-side filtering and
145
+ projection via ``resp.search(expression)``. See the
146
+ `JMESPath documentation <https://jmespath.org/>`_ for
147
+ expression syntax.
148
+
133
149
  """
134
150
  http_method = "get".upper()
135
151
  api_url = format_url(f"""