zscaler-sdk-python 1.9.10__tar.gz → 1.9.11__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 (481) hide show
  1. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/PKG-INFO +4 -2
  2. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/pyproject.toml +6 -4
  3. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/__init__.py +1 -1
  4. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_oauth_client.py +14 -3
  5. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/cyber_security.py +28 -17
  6. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/firewall.py +29 -25
  7. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/iot.py +13 -1
  8. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/models/common.py +0 -41
  9. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/saas_security.py +27 -9
  10. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/shadow_it.py +38 -9
  11. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/web_traffic.py +46 -36
  12. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/LICENSE.md +0 -0
  13. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/README.md +0 -0
  14. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/api_client.py +0 -0
  15. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/cache/__init__.py +0 -0
  16. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/cache/cache.py +0 -0
  17. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/cache/no_op_cache.py +0 -0
  18. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/cache/zscaler_cache.py +0 -0
  19. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/config/__init__.py +0 -0
  20. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/config/config_setter.py +0 -0
  21. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/config/config_validator.py +0 -0
  22. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/constants.py +0 -0
  23. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/error_messages.py +0 -0
  24. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/__init__.py +0 -0
  25. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/error.py +0 -0
  26. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/graphql_error.py +0 -0
  27. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/http_error.py +0 -0
  28. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/response_checker.py +0 -0
  29. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/errors/zscaler_api_error.py +0 -0
  30. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/exceptions/__init__.py +0 -0
  31. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/exceptions/exceptions.py +0 -0
  32. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/helpers.py +0 -0
  33. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/logger.py +0 -0
  34. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_client.py +0 -0
  35. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_collection.py +0 -0
  36. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_http_client.py +0 -0
  37. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_object.py +0 -0
  38. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/oneapi_response.py +0 -0
  39. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ratelimiter/__init__.py +0 -0
  40. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ratelimiter/ratelimiter.py +0 -0
  41. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/request_executor.py +0 -0
  42. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/types.py +0 -0
  43. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/user_agent.py +0 -0
  44. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/utils.py +0 -0
  45. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/__init__.py +0 -0
  46. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/admin_user.py +0 -0
  47. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/company.py +0 -0
  48. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/devices.py +0 -0
  49. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/entitlements.py +0 -0
  50. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/fail_open_policy.py +0 -0
  51. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/forwarding_profile.py +0 -0
  52. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/legacy.py +0 -0
  53. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/admin_roles.py +0 -0
  54. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/admin_user.py +0 -0
  55. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/devices.py +0 -0
  56. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/failopenpolicy.py +0 -0
  57. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/forwardingprofile.py +0 -0
  58. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/getcompanyinfo.py +0 -0
  59. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/manage_pass.py +0 -0
  60. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/secrets_otp.py +0 -0
  61. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/secrets_passwords.py +0 -0
  62. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/trustednetworks.py +0 -0
  63. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/webappservice.py +0 -0
  64. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/webpolicy.py +0 -0
  65. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/webprivacy.py +0 -0
  66. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/zdxgroupentitlements.py +0 -0
  67. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/models/zpagroupentitlements.py +0 -0
  68. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/secrets.py +0 -0
  69. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/trusted_networks.py +0 -0
  70. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/web_app_service.py +0 -0
  71. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/web_policy.py +0 -0
  72. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/web_privacy.py +0 -0
  73. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zcc/zcc_service.py +0 -0
  74. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/__init__.py +0 -0
  75. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/admin.py +0 -0
  76. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/alerts.py +0 -0
  77. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/apps.py +0 -0
  78. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/devices.py +0 -0
  79. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/inventory.py +0 -0
  80. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/legacy.py +0 -0
  81. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/administration.py +0 -0
  82. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/alerts.py +0 -0
  83. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/application_users.py +0 -0
  84. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/applications.py +0 -0
  85. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/call_quality_metrics.py +0 -0
  86. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/common.py +0 -0
  87. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/devices.py +0 -0
  88. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/snapshot.py +0 -0
  89. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/software_inventory.py +0 -0
  90. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/troubleshooting.py +0 -0
  91. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/models/users.py +0 -0
  92. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/snapshot.py +0 -0
  93. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/troubleshooting.py +0 -0
  94. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/users.py +0 -0
  95. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zdx/zdx_service.py +0 -0
  96. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/__init__.py +0 -0
  97. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/findings.py +0 -0
  98. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/lookalike_domains.py +0 -0
  99. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/models/__init__.py +0 -0
  100. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/models/common.py +0 -0
  101. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/models/findings.py +0 -0
  102. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/models/lookalike_domains.py +0 -0
  103. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/models/organizations.py +0 -0
  104. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/organizations.py +0 -0
  105. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zeasm/zeasm_service.py +0 -0
  106. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/__init__.py +0 -0
  107. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/activate.py +0 -0
  108. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/admin_roles.py +0 -0
  109. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/admin_users.py +0 -0
  110. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/advanced_settings.py +0 -0
  111. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/alert_subscriptions.py +0 -0
  112. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/apptotal.py +0 -0
  113. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/atp_policy.py +0 -0
  114. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/audit_logs.py +0 -0
  115. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/authentication_settings.py +0 -0
  116. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/bandwidth_classes.py +0 -0
  117. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/bandwidth_control_rules.py +0 -0
  118. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/browser_control_settings.py +0 -0
  119. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/casb_dlp_rules.py +0 -0
  120. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/casb_malware_rules.py +0 -0
  121. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_app_instances.py +0 -0
  122. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_applications.py +0 -0
  123. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_browser_isolation.py +0 -0
  124. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_firewall.py +0 -0
  125. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_firewall_dns.py +0 -0
  126. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_firewall_ips.py +0 -0
  127. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_firewall_rules.py +0 -0
  128. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_nss.py +0 -0
  129. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloud_to_cloud_ir.py +0 -0
  130. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/cloudappcontrol.py +0 -0
  131. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dedicated_ip_gateways.py +0 -0
  132. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/device_management.py +0 -0
  133. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dlp_dictionary.py +0 -0
  134. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dlp_engine.py +0 -0
  135. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dlp_resources.py +0 -0
  136. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dlp_templates.py +0 -0
  137. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dlp_web_rules.py +0 -0
  138. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/dns_gatways.py +0 -0
  139. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/end_user_notification.py +0 -0
  140. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/file_type_control_rule.py +0 -0
  141. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/forwarding_control.py +0 -0
  142. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/ftp_control_policy.py +0 -0
  143. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/gre_tunnel.py +0 -0
  144. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/intermediate_certificates.py +0 -0
  145. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/iot_report.py +0 -0
  146. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/ipv6_config.py +0 -0
  147. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/legacy.py +0 -0
  148. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/locations.py +0 -0
  149. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/malware_protection_policy.py +0 -0
  150. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/mobile_threat_settings.py +0 -0
  151. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/__init__.py +0 -0
  152. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/activation.py +0 -0
  153. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/admin_roles.py +0 -0
  154. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/admin_users.py +0 -0
  155. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/advanced_settings.py +0 -0
  156. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/advanced_threat_settings.py +0 -0
  157. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/alert_subscriptions.py +0 -0
  158. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/apptotal.py +0 -0
  159. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/authentication_settings.py +0 -0
  160. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/bandwidth_classes.py +0 -0
  161. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/bandwidth_control_rules.py +0 -0
  162. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/browser_control_settings.py +0 -0
  163. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/casb_dlp_rules.py +0 -0
  164. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/casb_malware_rules.py +0 -0
  165. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_app_instances.py +0 -0
  166. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_app_policy.py +0 -0
  167. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_browser_isolation.py +0 -0
  168. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_app_services.py +0 -0
  169. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -0
  170. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -0
  171. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -0
  172. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -0
  173. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -0
  174. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_nw_service.py +0 -0
  175. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -0
  176. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_rules.py +0 -0
  177. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_source_groups.py +0 -0
  178. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_firewall_time_windows.py +0 -0
  179. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_nss.py +0 -0
  180. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloud_to_cloud_ir.py +0 -0
  181. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/cloudappcontrol.py +0 -0
  182. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/common.py +0 -0
  183. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dedicated_ip_gateways.py +0 -0
  184. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/device_groups.py +0 -0
  185. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/devices.py +0 -0
  186. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dlp_dictionary.py +0 -0
  187. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dlp_engine.py +0 -0
  188. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dlp_resources.py +0 -0
  189. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dlp_templates.py +0 -0
  190. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dlp_web_rules.py +0 -0
  191. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/dns_gateways.py +0 -0
  192. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/endusernotification.py +0 -0
  193. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/filetyperules.py +0 -0
  194. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/forwarding_control_policy.py +0 -0
  195. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/ftp_control_policy.py +0 -0
  196. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/gre_recommended_list.py +0 -0
  197. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/gre_tunnel_info.py +0 -0
  198. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/gre_tunnels.py +0 -0
  199. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/gre_vips.py +0 -0
  200. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/intermediate_certificates.py +0 -0
  201. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/iotreport.py +0 -0
  202. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/ipv6_config.py +0 -0
  203. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/location_group.py +0 -0
  204. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/location_management.py +0 -0
  205. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/malware_protection_settings.py +0 -0
  206. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/mobile_threat_settings.py +0 -0
  207. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/nat_control_policy.py +0 -0
  208. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/nss_servers.py +0 -0
  209. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/organization_information.py +0 -0
  210. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/pac_files.py +0 -0
  211. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/proxies.py +0 -0
  212. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/proxy_gateways.py +0 -0
  213. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/remoteassistance.py +0 -0
  214. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/risk_profiles.py +0 -0
  215. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/rule_labels.py +0 -0
  216. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/saas_security_api.py +0 -0
  217. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/sandboxrules.py +0 -0
  218. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/security_policy_settings.py +0 -0
  219. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/shadow_it_report.py +0 -0
  220. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/ssl_inspection_rules.py +0 -0
  221. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/subclouds.py +0 -0
  222. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/system_audit.py +0 -0
  223. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/tenancy_restriction_profile.py +0 -0
  224. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/time_intervals.py +0 -0
  225. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_capture.py +0 -0
  226. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_datacenters.py +0 -0
  227. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_dc_exclusions.py +0 -0
  228. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_extranet.py +0 -0
  229. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_static_ip.py +0 -0
  230. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/traffic_vpn_credentials.py +0 -0
  231. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -0
  232. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/url_filtering_rules.py +0 -0
  233. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/urlcategory.py +0 -0
  234. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/user_management.py +0 -0
  235. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/vzen_clusters.py +0 -0
  236. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/vzen_nodes.py +0 -0
  237. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/workload_groups.py +0 -0
  238. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/models/zpa_gateway.py +0 -0
  239. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/nat_control_policy.py +0 -0
  240. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/nss_servers.py +0 -0
  241. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/organization_information.py +0 -0
  242. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/pac_files.py +0 -0
  243. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/policy_export.py +0 -0
  244. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/proxies.py +0 -0
  245. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/remote_assistance.py +0 -0
  246. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/risk_profiles.py +0 -0
  247. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/rule_labels.py +0 -0
  248. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/saas_security_api.py +0 -0
  249. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/sandbox.py +0 -0
  250. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/sandbox_rules.py +0 -0
  251. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/security_policy_settings.py +0 -0
  252. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/shadow_it_report.py +0 -0
  253. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/ssl_inspection_rules.py +0 -0
  254. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/sub_clouds.py +0 -0
  255. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/system_audit.py +0 -0
  256. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/tenancy_restriction_profile.py +0 -0
  257. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/time_intervals.py +0 -0
  258. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/traffic_capture.py +0 -0
  259. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/traffic_datacenters.py +0 -0
  260. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/traffic_extranet.py +0 -0
  261. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/traffic_static_ip.py +0 -0
  262. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/traffic_vpn_credentials.py +0 -0
  263. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/url_categories.py +0 -0
  264. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/url_filtering.py +0 -0
  265. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/user_management.py +0 -0
  266. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/vzen_clusters.py +0 -0
  267. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/vzen_nodes.py +0 -0
  268. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/workload_groups.py +0 -0
  269. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/zia_service.py +0 -0
  270. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zia/zpa_gateway.py +0 -0
  271. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/__init__.py +0 -0
  272. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/api_client.py +0 -0
  273. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/groups.py +0 -0
  274. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/api_client.py +0 -0
  275. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/common.py +0 -0
  276. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/groups.py +0 -0
  277. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/resource_servers.py +0 -0
  278. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/user_entitlement.py +0 -0
  279. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/models/users.py +0 -0
  280. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/resource_servers.py +0 -0
  281. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/user_entitlement.py +0 -0
  282. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/users.py +0 -0
  283. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zidentity/zidentity_service.py +0 -0
  284. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/__init__.py +0 -0
  285. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/models/__init__.py +0 -0
  286. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/models/enums.py +0 -0
  287. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/models/inputs.py +0 -0
  288. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zinsights/zinsights_service.py +0 -0
  289. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/__init__.py +0 -0
  290. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/admin_sso_controller.py +0 -0
  291. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/administrator_controller.py +0 -0
  292. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/api_keys.py +0 -0
  293. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_connector_groups.py +0 -0
  294. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_connector_schedule.py +0 -0
  295. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_connectors.py +0 -0
  296. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_protection.py +0 -0
  297. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_segment_by_type.py +0 -0
  298. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_segments_ba.py +0 -0
  299. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_segments_ba_v2.py +0 -0
  300. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_segments_inspection.py +0 -0
  301. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/app_segments_pra.py +0 -0
  302. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/application_segment.py +0 -0
  303. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/branch_connector_group.py +0 -0
  304. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/branch_connectors.py +0 -0
  305. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/browser_protection.py +0 -0
  306. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/c2c_ip_ranges.py +0 -0
  307. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cbi_banner.py +0 -0
  308. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cbi_certificate.py +0 -0
  309. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cbi_profile.py +0 -0
  310. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cbi_region.py +0 -0
  311. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cbi_zpa_profile.py +0 -0
  312. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/certificates.py +0 -0
  313. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/client_settings.py +0 -0
  314. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cloud_connector_controller.py +0 -0
  315. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/cloud_connector_groups.py +0 -0
  316. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/config_override_controller.py +0 -0
  317. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/customer_controller.py +0 -0
  318. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/customer_domain.py +0 -0
  319. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/customer_dr_tool.py +0 -0
  320. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/customer_version_profile.py +0 -0
  321. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/emergency_access.py +0 -0
  322. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/enrollment_certificates.py +0 -0
  323. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/extranet_resource.py +0 -0
  324. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/idp.py +0 -0
  325. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/legacy.py +0 -0
  326. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/location_controller.py +0 -0
  327. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/lss.py +0 -0
  328. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/machine_groups.py +0 -0
  329. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/managed_browser_profile.py +0 -0
  330. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/microtenants.py +0 -0
  331. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/administrator_controller.py +0 -0
  332. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/api_keys.py +0 -0
  333. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/app_connector_groups.py +0 -0
  334. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/app_connector_schedule.py +0 -0
  335. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/app_connectors.py +0 -0
  336. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/app_protection_predefined_controls.py +0 -0
  337. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/app_protection_profile.py +0 -0
  338. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/application_segment.py +0 -0
  339. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/application_segment_lb.py +0 -0
  340. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/application_servers.py +0 -0
  341. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/branch_connectors.py +0 -0
  342. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/browser_protection.py +0 -0
  343. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/c2c_ip_ranges.py +0 -0
  344. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cbi_banner.py +0 -0
  345. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cbi_certificate.py +0 -0
  346. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cbi_profile.py +0 -0
  347. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cbi_region.py +0 -0
  348. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cbi_zpa_profile.py +0 -0
  349. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/certificates.py +0 -0
  350. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/client_settings.py +0 -0
  351. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cloud_connector_controller.py +0 -0
  352. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/cloud_connector_groups.py +0 -0
  353. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/common.py +0 -0
  354. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/config_override_controller.py +0 -0
  355. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/customer_controller.py +0 -0
  356. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/customer_domain.py +0 -0
  357. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/customer_dr_tool.py +0 -0
  358. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/customer_version_profile.py +0 -0
  359. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/emergency_access.py +0 -0
  360. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/enrollment_certificates.py +0 -0
  361. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/idp.py +0 -0
  362. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/lss.py +0 -0
  363. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/machine_groups.py +0 -0
  364. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/managed_browser_profile.py +0 -0
  365. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/microtenants.py +0 -0
  366. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/npn_client_controller.py +0 -0
  367. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/oauth2_user_code.py +0 -0
  368. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/policyset_controller_v1.py +0 -0
  369. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/policyset_controller_v2.py +0 -0
  370. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/posture_profiles.py +0 -0
  371. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/pra_approval.py +0 -0
  372. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/pra_console.py +0 -0
  373. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/pra_cred_pool_controller.py +0 -0
  374. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/pra_credential.py +0 -0
  375. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/pra_portal.py +0 -0
  376. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/private_cloud_controller.py +0 -0
  377. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/private_cloud_group.py +0 -0
  378. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/provisioning_keys.py +0 -0
  379. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/role_controller.py +0 -0
  380. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/saml_attributes.py +0 -0
  381. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/scim_attributes.py +0 -0
  382. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/scim_groups.py +0 -0
  383. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/segment_group.py +0 -0
  384. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/server_group.py +0 -0
  385. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/service_edge_groups.py +0 -0
  386. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/service_edge_schedule.py +0 -0
  387. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/service_edges.py +0 -0
  388. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/stepup_auth_level.py +0 -0
  389. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/trusted_network.py +0 -0
  390. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/user_portal_aup.py +0 -0
  391. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/user_portal_controller.py +0 -0
  392. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/user_portal_link.py +0 -0
  393. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/models/zia_customer_config.py +0 -0
  394. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/npn_client_controller.py +0 -0
  395. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/oauth2_user_code.py +0 -0
  396. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/policies.py +0 -0
  397. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/posture_profiles.py +0 -0
  398. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/pra_approval.py +0 -0
  399. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/pra_console.py +0 -0
  400. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/pra_credential.py +0 -0
  401. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/pra_credential_pool.py +0 -0
  402. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/pra_portal.py +0 -0
  403. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/private_cloud_controller.py +0 -0
  404. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/private_cloud_group.py +0 -0
  405. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/provisioning.py +0 -0
  406. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/role_controller.py +0 -0
  407. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/saml_attributes.py +0 -0
  408. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/scim_attributes.py +0 -0
  409. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/scim_groups.py +0 -0
  410. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/segment_groups.py +0 -0
  411. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/server_groups.py +0 -0
  412. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/servers.py +0 -0
  413. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/service_edge_group.py +0 -0
  414. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/service_edge_schedule.py +0 -0
  415. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/service_edges.py +0 -0
  416. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/stepup_auth_level.py +0 -0
  417. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/trusted_networks.py +0 -0
  418. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/user_portal_aup.py +0 -0
  419. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/user_portal_controller.py +0 -0
  420. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/user_portal_link.py +0 -0
  421. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/workload_tag_group.py +0 -0
  422. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/zia_customer_config.py +0 -0
  423. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zpa/zpa_service.py +0 -0
  424. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/__init__.py +0 -0
  425. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/account_details.py +0 -0
  426. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/account_groups.py +0 -0
  427. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/activation.py +0 -0
  428. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/admin_roles.py +0 -0
  429. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/admin_users.py +0 -0
  430. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/api_keys.py +0 -0
  431. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/discovery_service.py +0 -0
  432. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/ec_groups.py +0 -0
  433. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/forwarding_gateways.py +0 -0
  434. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/forwarding_rules.py +0 -0
  435. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/ip_destination_groups.py +0 -0
  436. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/ip_groups.py +0 -0
  437. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/ip_source_groups.py +0 -0
  438. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/legacy.py +0 -0
  439. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/location_management.py +0 -0
  440. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/location_template.py +0 -0
  441. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/account_groups.py +0 -0
  442. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/activation.py +0 -0
  443. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/admin_roles.py +0 -0
  444. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/admin_users.py +0 -0
  445. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/api_keys.py +0 -0
  446. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/common.py +0 -0
  447. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/discovery_service.py +0 -0
  448. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/ec_group_vm.py +0 -0
  449. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/ecgroup.py +0 -0
  450. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/forwarding_gateways.py +0 -0
  451. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/forwarding_rules.py +0 -0
  452. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/ip_destination_groups.py +0 -0
  453. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/ip_groups.py +0 -0
  454. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/ip_source_groups.py +0 -0
  455. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/location_management.py +0 -0
  456. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/location_templates.py +0 -0
  457. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/nw_service.py +0 -0
  458. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/nw_service_groups.py +0 -0
  459. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/provisioning_url.py +0 -0
  460. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/public_cloud_info.py +0 -0
  461. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/traffic_vpn_credentials.py +0 -0
  462. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/models/zpa_resources.py +0 -0
  463. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/nw_service.py +0 -0
  464. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/nw_service_groups.py +0 -0
  465. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/provisioning_url.py +0 -0
  466. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/public_cloud_info.py +0 -0
  467. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/ztw/ztw_service.py +0 -0
  468. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/__init__.py +0 -0
  469. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/audit_logs.py +0 -0
  470. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/dlp_incidents.py +0 -0
  471. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/legacy.py +0 -0
  472. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/audit_logs.py +0 -0
  473. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/change_history.py +0 -0
  474. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/common.py +0 -0
  475. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/generated_tickets.py +0 -0
  476. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/incident_details.py +0 -0
  477. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/incident_evidence.py +0 -0
  478. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/incident_group_search.py +0 -0
  479. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/incident_search.py +0 -0
  480. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/zscaler/zwa/models/incident_trigger.py +0 -0
  481. {zscaler_sdk_python-1.9.10 → zscaler_sdk_python-1.9.11}/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.10
3
+ Version: 1.9.11
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
@@ -20,17 +20,19 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Topic :: Security
21
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
22
  Provides-Extra: dev
23
+ Requires-Dist: PyJWT (>=2.10.1)
23
24
  Requires-Dist: aenum (>=3.1.11)
24
25
  Requires-Dist: arrow (>=1.3.0)
25
26
  Requires-Dist: cryptography (>=45.0.2)
26
27
  Requires-Dist: flatdict (>=4.0.0)
28
+ Requires-Dist: jwcrypto (>=1.5.6)
27
29
  Requires-Dist: pydash (>=8.0.3)
28
30
  Requires-Dist: python-box (>=7.3.0)
29
31
  Requires-Dist: python-dateutil (>=2.9.0)
30
- Requires-Dist: python-jose[cryptography] (>=3.5.0)
31
32
  Requires-Dist: pytz (>=2024.2)
32
33
  Requires-Dist: pyyaml (>=6.0.0)
33
34
  Requires-Dist: requests (>=2.32.3)
35
+ Requires-Dist: urllib3 (>=2.6.0)
34
36
  Project-URL: Bug Tracker, https://github.com/zscaler/zscaler-sdk-python/issues
35
37
  Project-URL: Documentation, https://zscaler-sdk-python.readthedocs.io
36
38
  Project-URL: Repository, https://github.com/zscaler/zscaler-sdk-python
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "1.9.10"
3
+ version = "1.9.11"
4
4
  description = "Official Python SDK for the Zscaler Products"
5
5
  authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
6
6
  license = "MIT"
@@ -30,13 +30,15 @@ packages = [
30
30
  [tool.poetry.dependencies]
31
31
  python = ">=3.9.2,<4.0"
32
32
  requests = ">=2.32.3"
33
+ urllib3 = ">=2.6.0"
33
34
  cryptography = ">=45.0.2"
34
35
  pyyaml = ">=6.0.0"
35
36
  pytz = ">=2024.2"
36
37
  python-box = ">=7.3.0"
37
38
  python-dateutil = ">=2.9.0"
38
39
  flatdict = ">=4.0.0"
39
- python-jose = {extras = ["cryptography"], version = ">=3.5.0"}
40
+ PyJWT = ">=2.10.1"
41
+ jwcrypto = ">=1.5.6"
40
42
  aenum = ">=3.1.11"
41
43
  pydash = ">=8.0.3"
42
44
  arrow = ">=1.3.0"
@@ -50,7 +52,7 @@ pytest-mock = ">=3.12.0"
50
52
  pytest-asyncio = ">=0.23.0"
51
53
  pytest-cov = ">=6.2.1"
52
54
  pytest-recording = ">=0.13.1"
53
- vcrpy = ">=7.0.0" # Requires 7.0+ for urllib3 2.x support on Python 3.10+
55
+ vcrpy = {version = ">=8.1.0", python = ">=3.10"}
54
56
  pyfakefs = ">=5.7.0"
55
57
  responses = ">=0.25.7"
56
58
  sphinx = ">=7.2.0"
@@ -59,7 +61,7 @@ sphinx_rtd_theme = ">=1.3.0"
59
61
  wheel = ">=0.42.0"
60
62
 
61
63
  [tool.poetry.extras]
62
- dev = ["black", "pytest", "pytest-asyncio", "pytest-mock", "pytest-recording", "pytest-cov", "pyfakefs", "vcrpy", "isort", "wheel"]
64
+ dev = ["black", "pytest", "pytest-asyncio", "pytest-mock", "pytest-recording", "pytest-cov", "pyfakefs", "isort", "wheel"]
63
65
 
64
66
  [build-system]
65
67
  requires = ["poetry-core>=1.0.0"]
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "1.9.10"
32
+ __version__ = "1.9.11"
33
33
 
34
34
 
35
35
  from zscaler.oneapi_client import Client as ZscalerClient # noqa
@@ -3,11 +3,15 @@ import logging
3
3
  import json
4
4
  import os
5
5
  import requests
6
- from jose import jwt
7
6
  import time
8
7
  from cryptography.hazmat.backends import default_backend
9
8
  from cryptography.hazmat.primitives import serialization
10
9
  from cryptography.hazmat.primitives.asymmetric import rsa
10
+
11
+ # JWT handling - using PyJWT instead of python-jose to avoid ecdsa dependency (CVE-2024-23342)
12
+ import jwt as pyjwt
13
+ from jwcrypto.jwk import JWK
14
+
11
15
  from zscaler.user_agent import UserAgent
12
16
  from zscaler.oneapi_http_client import HTTPClient
13
17
  from zscaler.errors.response_checker import check_response_for_error
@@ -335,9 +339,15 @@ class OAuth:
335
339
  private_key_obj: Union[rsa.RSAPrivateKey, Any]
336
340
  if private_key.strip().startswith("{"):
337
341
  # **JWK JSON Format**
342
+ # Using jwcrypto instead of python-jose to avoid ecdsa dependency (CVE-2024-23342)
338
343
  logging.info("Using JWK JSON format for private key.")
339
344
  jwk_key: Dict[str, Any] = json.loads(private_key.strip()) # Convert JWK string to dict
340
- private_key_obj = jwt.algorithms.RSAAlgorithm.from_jwk(json.dumps(jwk_key))
345
+ # Convert JWK to PEM using jwcrypto, then load with cryptography
346
+ jwk_obj = JWK.from_json(json.dumps(jwk_key))
347
+ pem_bytes = jwk_obj.export_to_pem(private_key=True, password=None)
348
+ private_key_obj = serialization.load_pem_private_key(
349
+ pem_bytes, password=None, backend=default_backend()
350
+ )
341
351
 
342
352
  elif "BEGIN PRIVATE KEY" in private_key:
343
353
  # **Raw PEM Private Key**
@@ -365,7 +375,8 @@ class OAuth:
365
375
  }
366
376
 
367
377
  # **Generate the JWT assertion using the private key**
368
- assertion: str = jwt.encode(payload, private_key_obj, algorithm="RS256")
378
+ # Using PyJWT instead of python-jose to avoid ecdsa dependency (CVE-2024-23342)
379
+ assertion: str = pyjwt.encode(payload, private_key_obj, algorithm="RS256")
369
380
 
370
381
  # **Step 3: Prepare OAuth Request**
371
382
  form_data: Dict[str, str] = {
@@ -14,11 +14,12 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
22
23
 
23
24
 
24
25
  class CyberSecurityAPI(APIClient):
@@ -37,6 +38,30 @@ class CyberSecurityAPI(APIClient):
37
38
  super().__init__()
38
39
  self._request_executor = request_executor
39
40
 
41
+ def _extract_graphql_response(
42
+ self,
43
+ response,
44
+ api_url: str,
45
+ domain: str,
46
+ field: str,
47
+ ) -> Tuple[Optional[List[Dict[str, Any]]], Any, Optional[Exception]]:
48
+ """Extract data from GraphQL response and handle errors."""
49
+ try:
50
+ body = response.get_body() if response else {}
51
+ if is_graphql_error_response(body):
52
+ error = GraphQLAPIError(
53
+ url=api_url,
54
+ response_details=response._response,
55
+ response_body=body,
56
+ service_type="zins"
57
+ )
58
+ return (None, response, error)
59
+ data = body.get("data", {}) if isinstance(body, dict) else {}
60
+ entries = data.get(domain, {}).get(field, {}).get("entries", [])
61
+ return (entries, response, None)
62
+ except Exception as ex:
63
+ return (None, response, ex)
64
+
40
65
  def get_incidents(
41
66
  self,
42
67
  start_time: int,
@@ -124,14 +149,7 @@ class CyberSecurityAPI(APIClient):
124
149
  if error:
125
150
  return (None, response, error)
126
151
 
127
- try:
128
- body = response.get_body() if response else {}
129
- # GraphQL responses have data wrapped in "data" key
130
- data = body.get("data", {}) if isinstance(body, dict) else {}
131
- entries = data.get("CYBER_SECURITY", {}).get("incidents", {}).get("entries", [])
132
- return (entries, response, None)
133
- except Exception as ex:
134
- return (None, response, ex)
152
+ return self._extract_graphql_response(response, api_url, "CYBER_SECURITY", "incidents")
135
153
 
136
154
  def get_incidents_by_location(
137
155
  self,
@@ -210,11 +228,4 @@ class CyberSecurityAPI(APIClient):
210
228
  if error:
211
229
  return (None, response, error)
212
230
 
213
- try:
214
- body = response.get_body() if response else {}
215
- # GraphQL responses have data wrapped in "data" key
216
- data = body.get("data", {}) if isinstance(body, dict) else {}
217
- entries = data.get("CYBER_SECURITY", {}).get("cyber_security_location", {}).get("entries", [])
218
- return (entries, response, None)
219
- except Exception as ex:
220
- return (None, response, ex)
231
+ return self._extract_graphql_response(response, api_url, "CYBER_SECURITY", "cyber_security_location")
@@ -14,12 +14,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
22
  from zscaler.zinsights.models.inputs import FirewallEntriesFilterBy, FirewallEntryOrderBy
23
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
23
24
 
24
25
 
25
26
  class FirewallAPI(APIClient):
@@ -38,6 +39,30 @@ class FirewallAPI(APIClient):
38
39
  super().__init__()
39
40
  self._request_executor = request_executor
40
41
 
42
+ def _extract_graphql_response(
43
+ self,
44
+ response,
45
+ api_url: str,
46
+ domain: str,
47
+ field: str,
48
+ ) -> Tuple[Optional[List[Dict[str, Any]]], Any, Optional[Exception]]:
49
+ """Extract data from GraphQL response and handle errors."""
50
+ try:
51
+ body = response.get_body() if response else {}
52
+ if is_graphql_error_response(body):
53
+ error = GraphQLAPIError(
54
+ url=api_url,
55
+ response_details=response._response,
56
+ response_body=body,
57
+ service_type="zins"
58
+ )
59
+ return (None, response, error)
60
+ data = body.get("data", {}) if isinstance(body, dict) else {}
61
+ entries = data.get(domain, {}).get(field, {}).get("entries", [])
62
+ return (entries, response, None)
63
+ except Exception as ex:
64
+ return (None, response, ex)
65
+
41
66
  def get_traffic_by_action(
42
67
  self,
43
68
  start_time: int,
@@ -108,14 +133,7 @@ class FirewallAPI(APIClient):
108
133
  if error:
109
134
  return (None, response, error)
110
135
 
111
- try:
112
- body = response.get_body() if response else {}
113
- # GraphQL responses have data wrapped in "data" key
114
- data = body.get("data", {}) if isinstance(body, dict) else {}
115
- entries = data.get("ZERO_TRUST_FIREWALL", {}).get("action", {}).get("entries", [])
116
- return (entries, response, None)
117
- except Exception as ex:
118
- return (None, response, ex)
136
+ return self._extract_graphql_response(response, api_url, "ZERO_TRUST_FIREWALL", "action")
119
137
 
120
138
  def get_traffic_by_location(
121
139
  self,
@@ -209,14 +227,7 @@ class FirewallAPI(APIClient):
209
227
  if error:
210
228
  return (None, response, error)
211
229
 
212
- try:
213
- body = response.get_body() if response else {}
214
- # GraphQL responses have data wrapped in "data" key
215
- data = body.get("data", {}) if isinstance(body, dict) else {}
216
- entries = data.get("ZERO_TRUST_FIREWALL", {}).get("location_firewall", {}).get("entries", [])
217
- return (entries, response, None)
218
- except Exception as ex:
219
- return (None, response, ex)
230
+ return self._extract_graphql_response(response, api_url, "ZERO_TRUST_FIREWALL", "location_firewall")
220
231
 
221
232
  def get_network_services(
222
233
  self,
@@ -281,11 +292,4 @@ class FirewallAPI(APIClient):
281
292
  if error:
282
293
  return (None, response, error)
283
294
 
284
- try:
285
- body = response.get_body() if response else {}
286
- # GraphQL responses have data wrapped in "data" key
287
- data = body.get("data", {}) if isinstance(body, dict) else {}
288
- entries = data.get("ZERO_TRUST_FIREWALL", {}).get("network_service", {}).get("entries", [])
289
- return (entries, response, None)
290
- except Exception as ex:
291
- return (None, response, ex)
295
+ return self._extract_graphql_response(response, api_url, "ZERO_TRUST_FIREWALL", "network_service")
@@ -14,12 +14,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
22
  from zscaler.zinsights.models.inputs import IoTDeviceFilterBy, IoTDeviceOrderBy
23
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
23
24
 
24
25
 
25
26
  class IotAPI(APIClient):
@@ -127,6 +128,17 @@ class IotAPI(APIClient):
127
128
 
128
129
  try:
129
130
  body = response.get_body() if response else {}
131
+
132
+ # Check for GraphQL errors in the response
133
+ if is_graphql_error_response(body):
134
+ error = GraphQLAPIError(
135
+ url=api_url,
136
+ response_details=response._response,
137
+ response_body=body,
138
+ service_type="zins"
139
+ )
140
+ return (None, response, error)
141
+
130
142
  # GraphQL responses have data wrapped in "data" key
131
143
  data = body.get("data", {}) if isinstance(body, dict) else {}
132
144
  device_stats = data.get("IOT", {}).get("device_stats", {})
@@ -271,46 +271,6 @@ class FirewallReportEntry(ZscalerObject):
271
271
  return parent_req_format
272
272
 
273
273
 
274
- class RiskScoreEvent(ZscalerObject):
275
- """
276
- A risk score event entry.
277
-
278
- Attributes:
279
- time_stamp: The timestamp in epoch milliseconds.
280
- threats_blocked_count: Number of threats blocked.
281
- suspicious_activity_count: Number of suspicious activities.
282
- active_infection_count: Number of active infections.
283
- score: The calculated risk score.
284
- """
285
-
286
- def __init__(self, config: Optional[Dict[str, Any]] = None) -> None:
287
- super().__init__(config)
288
- if config:
289
- self.time_stamp: Optional[int] = config.get("time_stamp")
290
- self.threats_blocked_count: Optional[int] = config.get("threats_blocked_count")
291
- self.suspicious_activity_count: Optional[int] = config.get("suspicious_activity_count")
292
- self.active_infection_count: Optional[int] = config.get("active_infection_count")
293
- self.score: Optional[int] = config.get("score")
294
- else:
295
- self.time_stamp = None
296
- self.threats_blocked_count = None
297
- self.suspicious_activity_count = None
298
- self.active_infection_count = None
299
- self.score = None
300
-
301
- def request_format(self) -> Dict[str, Any]:
302
- parent_req_format = super().request_format()
303
- current_obj_format = {
304
- "time_stamp": self.time_stamp,
305
- "threats_blocked_count": self.threats_blocked_count,
306
- "suspicious_activity_count": self.suspicious_activity_count,
307
- "active_infection_count": self.active_infection_count,
308
- "score": self.score,
309
- }
310
- parent_req_format.update(current_obj_format)
311
- return parent_req_format
312
-
313
-
314
274
  # Export all common types
315
275
  __all__ = [
316
276
  "WebReportEntry",
@@ -321,5 +281,4 @@ __all__ = [
321
281
  "IoTDeviceStat",
322
282
  "ShadowITApp",
323
283
  "FirewallReportEntry",
324
- "RiskScoreEvent",
325
284
  ]
@@ -14,12 +14,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
22
  from zscaler.zinsights.models.inputs import CasbEntriesFilterBy, CasbEntryOrderBy
23
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
23
24
 
24
25
 
25
26
  class SaasSecurityAPI(APIClient):
@@ -36,6 +37,30 @@ class SaasSecurityAPI(APIClient):
36
37
  super().__init__()
37
38
  self._request_executor = request_executor
38
39
 
40
+ def _extract_graphql_response(
41
+ self,
42
+ response,
43
+ api_url: str,
44
+ domain: str,
45
+ field: str,
46
+ ) -> Tuple[Optional[List[Dict[str, Any]]], Any, Optional[Exception]]:
47
+ """Extract data from GraphQL response and handle errors."""
48
+ try:
49
+ body = response.get_body() if response else {}
50
+ if is_graphql_error_response(body):
51
+ error = GraphQLAPIError(
52
+ url=api_url,
53
+ response_details=response._response,
54
+ response_body=body,
55
+ service_type="zins"
56
+ )
57
+ return (None, response, error)
58
+ data = body.get("data", {}) if isinstance(body, dict) else {}
59
+ entries = data.get(domain, {}).get(field, {}).get("entries", [])
60
+ return (entries, response, None)
61
+ except Exception as ex:
62
+ return (None, response, ex)
63
+
39
64
  def get_casb_app_report(
40
65
  self,
41
66
  start_time: int,
@@ -116,11 +141,4 @@ class SaasSecurityAPI(APIClient):
116
141
  if error:
117
142
  return (None, response, error)
118
143
 
119
- try:
120
- body = response.get_body() if response else {}
121
- # GraphQL responses have data wrapped in "data" key
122
- data = body.get("data", {}) if isinstance(body, dict) else {}
123
- entries = data.get("SAAS_SECURITY", {}).get("casb_app", {}).get("entries", [])
124
- return (entries, response, None)
125
- except Exception as ex:
126
- return (None, response, ex)
144
+ return self._extract_graphql_response(response, api_url, "SAAS_SECURITY", "casb_app")
@@ -14,12 +14,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
22
  from zscaler.zinsights.models.inputs import ShadowITAppsFilterBy, ShadowITAppsOrderBy
23
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
23
24
 
24
25
 
25
26
  class ShadowItAPI(APIClient):
@@ -36,6 +37,30 @@ class ShadowItAPI(APIClient):
36
37
  super().__init__()
37
38
  self._request_executor = request_executor
38
39
 
40
+ def _extract_graphql_response(
41
+ self,
42
+ response,
43
+ api_url: str,
44
+ domain: str,
45
+ field: str,
46
+ ) -> Tuple[Optional[List[Dict[str, Any]]], Any, Optional[Exception]]:
47
+ """Extract data from GraphQL response and handle errors."""
48
+ try:
49
+ body = response.get_body() if response else {}
50
+ if is_graphql_error_response(body):
51
+ error = GraphQLAPIError(
52
+ url=api_url,
53
+ response_details=response._response,
54
+ response_body=body,
55
+ service_type="zins"
56
+ )
57
+ return (None, response, error)
58
+ data = body.get("data", {}) if isinstance(body, dict) else {}
59
+ entries = data.get(domain, {}).get(field, {}).get("entries", [])
60
+ return (entries, response, None)
61
+ except Exception as ex:
62
+ return (None, response, ex)
63
+
39
64
  def get_apps(
40
65
  self,
41
66
  start_time: int,
@@ -147,14 +172,7 @@ class ShadowItAPI(APIClient):
147
172
  if error:
148
173
  return (None, response, error)
149
174
 
150
- try:
151
- body = response.get_body() if response else {}
152
- # GraphQL responses have data wrapped in "data" key
153
- data = body.get("data", {}) if isinstance(body, dict) else {}
154
- entries = data.get("SHADOW_IT", {}).get("apps", {}).get("entries", [])
155
- return (entries, response, None)
156
- except Exception as ex:
157
- return (None, response, ex)
175
+ return self._extract_graphql_response(response, api_url, "SHADOW_IT", "apps")
158
176
 
159
177
  def get_shadow_it_summary(
160
178
  self,
@@ -307,6 +325,17 @@ class ShadowItAPI(APIClient):
307
325
 
308
326
  try:
309
327
  body = response.get_body() if response else {}
328
+
329
+ # Check for GraphQL errors in the response
330
+ if is_graphql_error_response(body):
331
+ error = GraphQLAPIError(
332
+ url=api_url,
333
+ response_details=response._response,
334
+ response_body=body,
335
+ service_type="zins"
336
+ )
337
+ return (None, response, error)
338
+
310
339
  # GraphQL responses have data wrapped in "data" key
311
340
  data = body.get("data", {}) if isinstance(body, dict) else {}
312
341
  summary = data.get("SHADOW_IT", {}).get("shadow_it_summary", {})
@@ -14,12 +14,13 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
14
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
15
  """
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Tuple, Any, Dict
18
18
 
19
19
  from zscaler.api_client import APIClient
20
20
  from zscaler.request_executor import RequestExecutor
21
21
  from zscaler.utils import format_url
22
22
  from zscaler.zinsights.models.inputs import WebEntriesFilterBy, WebOrderBy
23
+ from zscaler.errors.graphql_error import is_graphql_error_response, GraphQLAPIError
23
24
 
24
25
 
25
26
  class WebTrafficAPI(APIClient):
@@ -39,6 +40,45 @@ class WebTrafficAPI(APIClient):
39
40
  super().__init__()
40
41
  self._request_executor = request_executor
41
42
 
43
+ def _extract_graphql_response(
44
+ self,
45
+ response,
46
+ api_url: str,
47
+ domain: str,
48
+ field: str,
49
+ ) -> Tuple[Optional[List[Dict[str, Any]]], Any, Optional[Exception]]:
50
+ """
51
+ Extract data from GraphQL response and handle errors.
52
+
53
+ Args:
54
+ response: The HTTP response object
55
+ api_url: The API URL for error reporting
56
+ domain: The GraphQL domain (e.g., "WEB_TRAFFIC")
57
+ field: The field to extract (e.g., "location", "protocols")
58
+
59
+ Returns:
60
+ Tuple of (entries, response, error)
61
+ """
62
+ try:
63
+ body = response.get_body() if response else {}
64
+
65
+ # Check for GraphQL errors in the response
66
+ if is_graphql_error_response(body):
67
+ error = GraphQLAPIError(
68
+ url=api_url,
69
+ response_details=response._response,
70
+ response_body=body,
71
+ service_type="zins"
72
+ )
73
+ return (None, response, error)
74
+
75
+ # Extract the data
76
+ data = body.get("data", {}) if isinstance(body, dict) else {}
77
+ entries = data.get(domain, {}).get(field, {}).get("entries", [])
78
+ return (entries, response, None)
79
+ except Exception as ex:
80
+ return (None, response, ex)
81
+
42
82
  def get_traffic_by_location(
43
83
  self,
44
84
  start_time: int,
@@ -140,13 +180,7 @@ class WebTrafficAPI(APIClient):
140
180
  if error:
141
181
  return (None, response, error)
142
182
 
143
- try:
144
- body = response.get_body() if response else {}
145
- data = body.get("data", {}) if isinstance(body, dict) else {}
146
- entries = data.get("WEB_TRAFFIC", {}).get("location", {}).get("entries", [])
147
- return (entries, response, None)
148
- except Exception as ex:
149
- return (None, response, ex)
183
+ return self._extract_graphql_response(response, api_url, "WEB_TRAFFIC", "location")
150
184
 
151
185
  def get_no_grouping(
152
186
  self,
@@ -241,13 +275,7 @@ class WebTrafficAPI(APIClient):
241
275
  if error:
242
276
  return (None, response, error)
243
277
 
244
- try:
245
- body = response.get_body() if response else {}
246
- data = body.get("data", {}) if isinstance(body, dict) else {}
247
- entries = data.get("WEB_TRAFFIC", {}).get("no_grouping", {}).get("entries", [])
248
- return (entries, response, None)
249
- except Exception as ex:
250
- return (None, response, ex)
278
+ return self._extract_graphql_response(response, api_url, "WEB_TRAFFIC", "no_grouping")
251
279
 
252
280
  def get_protocols(
253
281
  self,
@@ -315,13 +343,7 @@ class WebTrafficAPI(APIClient):
315
343
  if error:
316
344
  return (None, response, error)
317
345
 
318
- try:
319
- body = response.get_body() if response else {}
320
- data = body.get("data", {}) if isinstance(body, dict) else {}
321
- entries = data.get("WEB_TRAFFIC", {}).get("protocols", {}).get("entries", [])
322
- return (entries, response, None)
323
- except Exception as ex:
324
- return (None, response, ex)
346
+ return self._extract_graphql_response(response, api_url, "WEB_TRAFFIC", "protocols")
325
347
 
326
348
  def get_threat_super_categories(
327
349
  self,
@@ -391,13 +413,7 @@ class WebTrafficAPI(APIClient):
391
413
  if error:
392
414
  return (None, response, error)
393
415
 
394
- try:
395
- body = response.get_body() if response else {}
396
- data = body.get("data", {}) if isinstance(body, dict) else {}
397
- entries = data.get("WEB_TRAFFIC", {}).get("threat_super_categories", {}).get("entries", [])
398
- return (entries, response, None)
399
- except Exception as ex:
400
- return (None, response, ex)
416
+ return self._extract_graphql_response(response, api_url, "WEB_TRAFFIC", "threat_super_categories")
401
417
 
402
418
  def get_threat_class(
403
419
  self,
@@ -467,10 +483,4 @@ class WebTrafficAPI(APIClient):
467
483
  if error:
468
484
  return (None, response, error)
469
485
 
470
- try:
471
- body = response.get_body() if response else {}
472
- data = body.get("data", {}) if isinstance(body, dict) else {}
473
- entries = data.get("WEB_TRAFFIC", {}).get("threat_class", {}).get("entries", [])
474
- return (entries, response, None)
475
- except Exception as ex:
476
- return (None, response, ex)
486
+ return self._extract_graphql_response(response, api_url, "WEB_TRAFFIC", "threat_class")