zscaler-sdk-python 1.9.22__tar.gz → 2.0.0b1__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 (644) hide show
  1. zscaler_sdk_python-2.0.0b1/PKG-INFO +933 -0
  2. zscaler_sdk_python-2.0.0b1/README.md +890 -0
  3. zscaler_sdk_python-2.0.0b1/pyproject.toml +107 -0
  4. zscaler_sdk_python-2.0.0b1/setup.cfg +4 -0
  5. zscaler_sdk_python-2.0.0b1/zscaler_sdk_python.egg-info/PKG-INFO +933 -0
  6. zscaler_sdk_python-2.0.0b1/zscaler_sdk_python.egg-info/SOURCES.txt +99 -0
  7. zscaler_sdk_python-2.0.0b1/zscaler_sdk_python.egg-info/dependency_links.txt +1 -0
  8. zscaler_sdk_python-2.0.0b1/zscaler_sdk_python.egg-info/requires.txt +20 -0
  9. zscaler_sdk_python-2.0.0b1/zscaler_sdk_python.egg-info/top_level.txt +1 -0
  10. zscaler_sdk_python-2.0.0b1/zssdk/__init__.py +55 -0
  11. zscaler_sdk_python-1.9.22/zscaler/zaiguard/__init__.py → zscaler_sdk_python-2.0.0b1/zssdk/__version__.py +2 -0
  12. zscaler_sdk_python-2.0.0b1/zssdk/session.py +251 -0
  13. zscaler_sdk_python-2.0.0b1/zssdk/session.pyi +59 -0
  14. zscaler_sdk_python-2.0.0b1/zssdk/zscore/__init__.py +98 -0
  15. zscaler_sdk_python-2.0.0b1/zssdk/zscore/args.py +57 -0
  16. zscaler_sdk_python-2.0.0b1/zssdk/zscore/auth.py +77 -0
  17. zscaler_sdk_python-2.0.0b1/zssdk/zscore/case.py +118 -0
  18. zscaler_sdk_python-2.0.0b1/zssdk/zscore/client.py +367 -0
  19. zscaler_sdk_python-2.0.0b1/zssdk/zscore/config.py +173 -0
  20. zscaler_sdk_python-2.0.0b1/zssdk/zscore/configloader.py +84 -0
  21. zscaler_sdk_python-2.0.0b1/zssdk/zscore/configprovider.py +153 -0
  22. zscaler_sdk_python-2.0.0b1/zssdk/zscore/credentials.py +257 -0
  23. zscaler_sdk_python-2.0.0b1/zssdk/zscore/csv_utils.py +212 -0
  24. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/_retry.json +75 -0
  25. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/endpoints.json +38 -0
  26. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/exception.json +46 -0
  27. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zcc/v1/paginators-1.json +102 -0
  28. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zcc/v1/service-1.json +5815 -0
  29. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zdx/v1/paginators-1.json +60 -0
  30. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zdx/v1/service-1.json +3981 -0
  31. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zia/v1/paginators-1.json +396 -0
  32. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zia/v1/service-1.json +30535 -0
  33. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zid/v1/paginators-1.json +46 -0
  34. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zid/v1/service-1.json +1677 -0
  35. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zpa/v1/paginators-1.json +326 -0
  36. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/zpa/v1/service-1.json +17746 -0
  37. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/ztw/v1/paginators-1.json +137 -0
  38. zscaler_sdk_python-2.0.0b1/zssdk/zscore/data/ztw/v1/service-1.json +7226 -0
  39. zscaler_sdk_python-2.0.0b1/zssdk/zscore/endpoint.py +106 -0
  40. zscaler_sdk_python-2.0.0b1/zssdk/zscore/errorfactory.py +96 -0
  41. zscaler_sdk_python-2.0.0b1/zssdk/zscore/errorutils.py +256 -0
  42. zscaler_sdk_python-2.0.0b1/zssdk/zscore/exceptions.py +431 -0
  43. zscaler_sdk_python-2.0.0b1/zssdk/zscore/handlers.py +58 -0
  44. zscaler_sdk_python-2.0.0b1/zssdk/zscore/hooks.py +302 -0
  45. zscaler_sdk_python-2.0.0b1/zssdk/zscore/httpsession.py +192 -0
  46. zscaler_sdk_python-2.0.0b1/zssdk/zscore/loaders.py +136 -0
  47. zscaler_sdk_python-2.0.0b1/zssdk/zscore/logger.py +737 -0
  48. zscaler_sdk_python-2.0.0b1/zssdk/zscore/model.py +205 -0
  49. zscaler_sdk_python-2.0.0b1/zssdk/zscore/paginate.py +351 -0
  50. zscaler_sdk_python-2.0.0b1/zssdk/zscore/parsers.py +404 -0
  51. zscaler_sdk_python-2.0.0b1/zssdk/zscore/regions.py +52 -0
  52. zscaler_sdk_python-1.9.22/zscaler/__init__.py → zscaler_sdk_python-2.0.0b1/zssdk/zscore/request.py +15 -15
  53. zscaler_sdk_python-2.0.0b1/zssdk/zscore/response.py +99 -0
  54. zscaler_sdk_python-2.0.0b1/zssdk/zscore/retry.py +371 -0
  55. zscaler_sdk_python-2.0.0b1/zssdk/zscore/serialize.py +499 -0
  56. zscaler_sdk_python-2.0.0b1/zssdk/zscore/session.py +389 -0
  57. zscaler_sdk_python-2.0.0b1/zssdk/zscore/session.pyi +33 -0
  58. zscaler_sdk_python-2.0.0b1/zssdk/zscore/stub.py +225 -0
  59. zscaler_sdk_python-2.0.0b1/zssdk/zscore/tokenprovider.py +146 -0
  60. zscaler_sdk_python-2.0.0b1/zssdk/zscore/useragent.py +81 -0
  61. zscaler_sdk_python-2.0.0b1/zssdk/zscore/utils.py +124 -0
  62. zscaler_sdk_python-2.0.0b1/zssdk/zscore/validate.py +132 -0
  63. zscaler_sdk_python-2.0.0b1/zssdk/zscore/zcc_client.pyi +875 -0
  64. zscaler_sdk_python-2.0.0b1/zssdk/zscore/zdx_client.pyi +188 -0
  65. zscaler_sdk_python-2.0.0b1/zssdk/zscore/zia_client.pyi +5980 -0
  66. zscaler_sdk_python-2.0.0b1/zssdk/zscore/zid_client.pyi +458 -0
  67. zscaler_sdk_python-2.0.0b1/zssdk/zscore/zpa_client.pyi +3478 -0
  68. zscaler_sdk_python-2.0.0b1/zssdk/zscore/ztw_client.pyi +564 -0
  69. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/__init__.py +74 -0
  70. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/action.py +118 -0
  71. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/base.py +196 -0
  72. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/base.pyi +12 -0
  73. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/collection.py +475 -0
  74. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/collection.pyi +29 -0
  75. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/zcc/v1/resources-1.json +7052 -0
  76. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/zdx/v1/resources-1.json +3600 -0
  77. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/zia/v1/resources-1.json +46276 -0
  78. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/zid/v1/resources-1.json +1678 -0
  79. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/zpa/v1/resources-1.json +26043 -0
  80. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/data/ztw/v1/resources-1.json +10057 -0
  81. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/dictionary.py +127 -0
  82. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/dictionary.pyi +16 -0
  83. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/exception_factory.py +160 -0
  84. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/exceptions.py +236 -0
  85. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/exceptions.pyi +42 -0
  86. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/factory.py +1112 -0
  87. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/params.py +66 -0
  88. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/response.py +173 -0
  89. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/service.py +84 -0
  90. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/service.pyi +14 -0
  91. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/subresource.py +469 -0
  92. zscaler_sdk_python-1.9.22/zscaler/zms/__init__.py → zscaler_sdk_python-2.0.0b1/zssdk/zsresource/utils.py +11 -4
  93. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/validation.py +91 -0
  94. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/zcc_resources.pyi +2683 -0
  95. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/zdx_resources.pyi +933 -0
  96. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/zia_resources.pyi +12486 -0
  97. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/zid_resources.pyi +633 -0
  98. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/zpa_resources.pyi +6947 -0
  99. zscaler_sdk_python-2.0.0b1/zssdk/zsresource/ztw_resources.pyi +2158 -0
  100. zscaler_sdk_python-1.9.22/PKG-INFO +0 -1883
  101. zscaler_sdk_python-1.9.22/README.md +0 -1843
  102. zscaler_sdk_python-1.9.22/pyproject.toml +0 -110
  103. zscaler_sdk_python-1.9.22/zscaler/api_client.py +0 -95
  104. zscaler_sdk_python-1.9.22/zscaler/cache/cache.py +0 -105
  105. zscaler_sdk_python-1.9.22/zscaler/cache/no_op_cache.py +0 -60
  106. zscaler_sdk_python-1.9.22/zscaler/cache/zscaler_cache.py +0 -171
  107. zscaler_sdk_python-1.9.22/zscaler/config/__init__.py +0 -0
  108. zscaler_sdk_python-1.9.22/zscaler/config/config_setter.py +0 -197
  109. zscaler_sdk_python-1.9.22/zscaler/config/config_validator.py +0 -179
  110. zscaler_sdk_python-1.9.22/zscaler/constants.py +0 -46
  111. zscaler_sdk_python-1.9.22/zscaler/error_messages.py +0 -45
  112. zscaler_sdk_python-1.9.22/zscaler/errors/__init__.py +0 -25
  113. zscaler_sdk_python-1.9.22/zscaler/errors/error.py +0 -10
  114. zscaler_sdk_python-1.9.22/zscaler/errors/graphql_error.py +0 -195
  115. zscaler_sdk_python-1.9.22/zscaler/errors/http_error.py +0 -14
  116. zscaler_sdk_python-1.9.22/zscaler/errors/response_checker.py +0 -90
  117. zscaler_sdk_python-1.9.22/zscaler/errors/zscaler_api_error.py +0 -62
  118. zscaler_sdk_python-1.9.22/zscaler/exceptions/__init__.py +0 -1
  119. zscaler_sdk_python-1.9.22/zscaler/exceptions/exceptions.py +0 -93
  120. zscaler_sdk_python-1.9.22/zscaler/helpers.py +0 -433
  121. zscaler_sdk_python-1.9.22/zscaler/logger.py +0 -245
  122. zscaler_sdk_python-1.9.22/zscaler/oneapi_client.py +0 -708
  123. zscaler_sdk_python-1.9.22/zscaler/oneapi_collection.py +0 -21
  124. zscaler_sdk_python-1.9.22/zscaler/oneapi_http_client.py +0 -422
  125. zscaler_sdk_python-1.9.22/zscaler/oneapi_oauth_client.py +0 -540
  126. zscaler_sdk_python-1.9.22/zscaler/oneapi_object.py +0 -80
  127. zscaler_sdk_python-1.9.22/zscaler/oneapi_response.py +0 -445
  128. zscaler_sdk_python-1.9.22/zscaler/ratelimiter/__init__.py +0 -0
  129. zscaler_sdk_python-1.9.22/zscaler/ratelimiter/ratelimiter.py +0 -60
  130. zscaler_sdk_python-1.9.22/zscaler/request_executor.py +0 -944
  131. zscaler_sdk_python-1.9.22/zscaler/types.py +0 -38
  132. zscaler_sdk_python-1.9.22/zscaler/user_agent.py +0 -21
  133. zscaler_sdk_python-1.9.22/zscaler/utils.py +0 -1025
  134. zscaler_sdk_python-1.9.22/zscaler/zaiguard/legacy.py +0 -456
  135. zscaler_sdk_python-1.9.22/zscaler/zaiguard/models/__init__.py +0 -15
  136. zscaler_sdk_python-1.9.22/zscaler/zaiguard/models/policy_detection.py +0 -401
  137. zscaler_sdk_python-1.9.22/zscaler/zaiguard/policy_detection.py +0 -193
  138. zscaler_sdk_python-1.9.22/zscaler/zaiguard/zaiguard_service.py +0 -33
  139. zscaler_sdk_python-1.9.22/zscaler/zbi/__init__.py +0 -0
  140. zscaler_sdk_python-1.9.22/zscaler/zbi/custom_apps.py +0 -281
  141. zscaler_sdk_python-1.9.22/zscaler/zbi/models/__init__.py +0 -0
  142. zscaler_sdk_python-1.9.22/zscaler/zbi/models/custom_apps.py +0 -82
  143. zscaler_sdk_python-1.9.22/zscaler/zbi/models/report_configs.py +0 -185
  144. zscaler_sdk_python-1.9.22/zscaler/zbi/report_configs.py +0 -328
  145. zscaler_sdk_python-1.9.22/zscaler/zbi/reports.py +0 -218
  146. zscaler_sdk_python-1.9.22/zscaler/zbi/zbi_service.py +0 -51
  147. zscaler_sdk_python-1.9.22/zscaler/zcc/__init__.py +0 -0
  148. zscaler_sdk_python-1.9.22/zscaler/zcc/admin_user.py +0 -279
  149. zscaler_sdk_python-1.9.22/zscaler/zcc/company.py +0 -77
  150. zscaler_sdk_python-1.9.22/zscaler/zcc/devices.py +0 -695
  151. zscaler_sdk_python-1.9.22/zscaler/zcc/entitlements.py +0 -189
  152. zscaler_sdk_python-1.9.22/zscaler/zcc/fail_open_policy.py +0 -143
  153. zscaler_sdk_python-1.9.22/zscaler/zcc/forwarding_profile.py +0 -171
  154. zscaler_sdk_python-1.9.22/zscaler/zcc/legacy.py +0 -438
  155. zscaler_sdk_python-1.9.22/zscaler/zcc/models/admin_roles.py +0 -164
  156. zscaler_sdk_python-1.9.22/zscaler/zcc/models/admin_user.py +0 -134
  157. zscaler_sdk_python-1.9.22/zscaler/zcc/models/devices.py +0 -545
  158. zscaler_sdk_python-1.9.22/zscaler/zcc/models/failopenpolicy.py +0 -105
  159. zscaler_sdk_python-1.9.22/zscaler/zcc/models/forwardingprofile.py +0 -344
  160. zscaler_sdk_python-1.9.22/zscaler/zcc/models/getcompanyinfo.py +0 -1393
  161. zscaler_sdk_python-1.9.22/zscaler/zcc/models/manage_pass.py +0 -97
  162. zscaler_sdk_python-1.9.22/zscaler/zcc/models/secrets_otp.py +0 -75
  163. zscaler_sdk_python-1.9.22/zscaler/zcc/models/secrets_passwords.py +0 -61
  164. zscaler_sdk_python-1.9.22/zscaler/zcc/models/trustednetworks.py +0 -98
  165. zscaler_sdk_python-1.9.22/zscaler/zcc/models/webappservice.py +0 -86
  166. zscaler_sdk_python-1.9.22/zscaler/zcc/models/webpolicy.py +0 -1138
  167. zscaler_sdk_python-1.9.22/zscaler/zcc/models/webprivacy.py +0 -85
  168. zscaler_sdk_python-1.9.22/zscaler/zcc/models/zdxgroupentitlements.py +0 -73
  169. zscaler_sdk_python-1.9.22/zscaler/zcc/models/zpagroupentitlements.py +0 -74
  170. zscaler_sdk_python-1.9.22/zscaler/zcc/secrets.py +0 -129
  171. zscaler_sdk_python-1.9.22/zscaler/zcc/trusted_networks.py +0 -251
  172. zscaler_sdk_python-1.9.22/zscaler/zcc/web_app_service.py +0 -87
  173. zscaler_sdk_python-1.9.22/zscaler/zcc/web_policy.py +0 -206
  174. zscaler_sdk_python-1.9.22/zscaler/zcc/web_privacy.py +0 -137
  175. zscaler_sdk_python-1.9.22/zscaler/zcc/zcc_service.py +0 -122
  176. zscaler_sdk_python-1.9.22/zscaler/zdx/__init__.py +0 -0
  177. zscaler_sdk_python-1.9.22/zscaler/zdx/admin.py +0 -176
  178. zscaler_sdk_python-1.9.22/zscaler/zdx/alerts.py +0 -333
  179. zscaler_sdk_python-1.9.22/zscaler/zdx/apps.py +0 -465
  180. zscaler_sdk_python-1.9.22/zscaler/zdx/devices.py +0 -857
  181. zscaler_sdk_python-1.9.22/zscaler/zdx/inventory.py +0 -181
  182. zscaler_sdk_python-1.9.22/zscaler/zdx/legacy.py +0 -448
  183. zscaler_sdk_python-1.9.22/zscaler/zdx/models/administration.py +0 -49
  184. zscaler_sdk_python-1.9.22/zscaler/zdx/models/alerts.py +0 -212
  185. zscaler_sdk_python-1.9.22/zscaler/zdx/models/application_users.py +0 -98
  186. zscaler_sdk_python-1.9.22/zscaler/zdx/models/applications.py +0 -257
  187. zscaler_sdk_python-1.9.22/zscaler/zdx/models/call_quality_metrics.py +0 -59
  188. zscaler_sdk_python-1.9.22/zscaler/zdx/models/common.py +0 -384
  189. zscaler_sdk_python-1.9.22/zscaler/zdx/models/devices.py +0 -919
  190. zscaler_sdk_python-1.9.22/zscaler/zdx/models/snapshot.py +0 -69
  191. zscaler_sdk_python-1.9.22/zscaler/zdx/models/software_inventory.py +0 -105
  192. zscaler_sdk_python-1.9.22/zscaler/zdx/models/troubleshooting.py +0 -448
  193. zscaler_sdk_python-1.9.22/zscaler/zdx/models/users.py +0 -95
  194. zscaler_sdk_python-1.9.22/zscaler/zdx/snapshot.py +0 -124
  195. zscaler_sdk_python-1.9.22/zscaler/zdx/troubleshooting.py +0 -659
  196. zscaler_sdk_python-1.9.22/zscaler/zdx/users.py +0 -170
  197. zscaler_sdk_python-1.9.22/zscaler/zdx/zdx_service.py +0 -95
  198. zscaler_sdk_python-1.9.22/zscaler/zeasm/__init__.py +0 -0
  199. zscaler_sdk_python-1.9.22/zscaler/zeasm/findings.py +0 -253
  200. zscaler_sdk_python-1.9.22/zscaler/zeasm/lookalike_domains.py +0 -146
  201. zscaler_sdk_python-1.9.22/zscaler/zeasm/models/__init__.py +0 -0
  202. zscaler_sdk_python-1.9.22/zscaler/zeasm/models/common.py +0 -53
  203. zscaler_sdk_python-1.9.22/zscaler/zeasm/models/findings.py +0 -169
  204. zscaler_sdk_python-1.9.22/zscaler/zeasm/models/lookalike_domains.py +0 -124
  205. zscaler_sdk_python-1.9.22/zscaler/zeasm/models/organizations.py +0 -60
  206. zscaler_sdk_python-1.9.22/zscaler/zeasm/organizations.py +0 -101
  207. zscaler_sdk_python-1.9.22/zscaler/zeasm/zeasm_service.py +0 -51
  208. zscaler_sdk_python-1.9.22/zscaler/zia/__init__.py +0 -0
  209. zscaler_sdk_python-1.9.22/zscaler/zia/activate.py +0 -201
  210. zscaler_sdk_python-1.9.22/zscaler/zia/admin_roles.py +0 -645
  211. zscaler_sdk_python-1.9.22/zscaler/zia/admin_users.py +0 -496
  212. zscaler_sdk_python-1.9.22/zscaler/zia/advanced_settings.py +0 -207
  213. zscaler_sdk_python-1.9.22/zscaler/zia/alert_subscriptions.py +0 -298
  214. zscaler_sdk_python-1.9.22/zscaler/zia/apptotal.py +0 -217
  215. zscaler_sdk_python-1.9.22/zscaler/zia/atp_policy.py +0 -395
  216. zscaler_sdk_python-1.9.22/zscaler/zia/audit_logs.py +0 -154
  217. zscaler_sdk_python-1.9.22/zscaler/zia/authentication_settings.py +0 -293
  218. zscaler_sdk_python-1.9.22/zscaler/zia/bandwidth_classes.py +0 -337
  219. zscaler_sdk_python-1.9.22/zscaler/zia/bandwidth_control_rules.py +0 -417
  220. zscaler_sdk_python-1.9.22/zscaler/zia/browser_control_settings.py +0 -225
  221. zscaler_sdk_python-1.9.22/zscaler/zia/casb_dlp_rules.py +0 -676
  222. zscaler_sdk_python-1.9.22/zscaler/zia/casb_malware_rules.py +0 -403
  223. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_app_instances.py +0 -296
  224. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_applications.py +0 -196
  225. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_browser_isolation.py +0 -87
  226. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_firewall.py +0 -2282
  227. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_firewall_dns.py +0 -392
  228. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_firewall_ips.py +0 -384
  229. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_firewall_rules.py +0 -380
  230. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_nss.py +0 -694
  231. zscaler_sdk_python-1.9.22/zscaler/zia/cloud_to_cloud_ir.py +0 -310
  232. zscaler_sdk_python-1.9.22/zscaler/zia/cloudappcontrol.py +0 -758
  233. zscaler_sdk_python-1.9.22/zscaler/zia/custom_file_types.py +0 -333
  234. zscaler_sdk_python-1.9.22/zscaler/zia/dedicated_ip_gateways.py +0 -82
  235. zscaler_sdk_python-1.9.22/zscaler/zia/device_management.py +0 -205
  236. zscaler_sdk_python-1.9.22/zscaler/zia/dlp_dictionary.py +0 -521
  237. zscaler_sdk_python-1.9.22/zscaler/zia/dlp_engine.py +0 -400
  238. zscaler_sdk_python-1.9.22/zscaler/zia/dlp_resources.py +0 -617
  239. zscaler_sdk_python-1.9.22/zscaler/zia/dlp_templates.py +0 -293
  240. zscaler_sdk_python-1.9.22/zscaler/zia/dlp_web_rules.py +0 -437
  241. zscaler_sdk_python-1.9.22/zscaler/zia/dns_gatways.py +0 -325
  242. zscaler_sdk_python-1.9.22/zscaler/zia/end_user_notification.py +0 -162
  243. zscaler_sdk_python-1.9.22/zscaler/zia/file_type_control_rule.py +0 -413
  244. zscaler_sdk_python-1.9.22/zscaler/zia/forwarding_control.py +0 -422
  245. zscaler_sdk_python-1.9.22/zscaler/zia/ftp_control_policy.py +0 -139
  246. zscaler_sdk_python-1.9.22/zscaler/zia/gre_tunnel.py +0 -751
  247. zscaler_sdk_python-1.9.22/zscaler/zia/intermediate_certificates.py +0 -702
  248. zscaler_sdk_python-1.9.22/zscaler/zia/iot_report.py +0 -199
  249. zscaler_sdk_python-1.9.22/zscaler/zia/ipv6_config.py +0 -202
  250. zscaler_sdk_python-1.9.22/zscaler/zia/legacy.py +0 -1270
  251. zscaler_sdk_python-1.9.22/zscaler/zia/locations.py +0 -1215
  252. zscaler_sdk_python-1.9.22/zscaler/zia/malware_protection_policy.py +0 -496
  253. zscaler_sdk_python-1.9.22/zscaler/zia/mobile_threat_settings.py +0 -149
  254. zscaler_sdk_python-1.9.22/zscaler/zia/models/__init__.py +0 -0
  255. zscaler_sdk_python-1.9.22/zscaler/zia/models/activation.py +0 -93
  256. zscaler_sdk_python-1.9.22/zscaler/zia/models/admin_roles.py +0 -134
  257. zscaler_sdk_python-1.9.22/zscaler/zia/models/admin_users.py +0 -332
  258. zscaler_sdk_python-1.9.22/zscaler/zia/models/advanced_settings.py +0 -321
  259. zscaler_sdk_python-1.9.22/zscaler/zia/models/advanced_threat_settings.py +0 -218
  260. zscaler_sdk_python-1.9.22/zscaler/zia/models/alert_subscriptions.py +0 -85
  261. zscaler_sdk_python-1.9.22/zscaler/zia/models/apptotal.py +0 -258
  262. zscaler_sdk_python-1.9.22/zscaler/zia/models/authentication_settings.py +0 -92
  263. zscaler_sdk_python-1.9.22/zscaler/zia/models/bandwidth_classes.py +0 -78
  264. zscaler_sdk_python-1.9.22/zscaler/zia/models/bandwidth_control_rules.py +0 -137
  265. zscaler_sdk_python-1.9.22/zscaler/zia/models/browser_control_settings.py +0 -137
  266. zscaler_sdk_python-1.9.22/zscaler/zia/models/casb_dlp_rules.py +0 -366
  267. zscaler_sdk_python-1.9.22/zscaler/zia/models/casb_malware_rules.py +0 -127
  268. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_app_instances.py +0 -140
  269. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_app_policy.py +0 -53
  270. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_browser_isolation.py +0 -52
  271. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_app_services.py +0 -49
  272. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_destination_groups.py +0 -65
  273. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_dns_rules.py +0 -266
  274. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_ips_rules.py +0 -226
  275. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_nw_application_groups.py +0 -55
  276. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_nw_applications.py +0 -52
  277. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_nw_service.py +0 -142
  278. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_nw_service_groups.py +0 -53
  279. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_rules.py +0 -250
  280. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_source_groups.py +0 -60
  281. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_firewall_time_windows.py +0 -56
  282. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_nss.py +0 -612
  283. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloud_to_cloud_ir.py +0 -436
  284. zscaler_sdk_python-1.9.22/zscaler/zia/models/cloudappcontrol.py +0 -265
  285. zscaler_sdk_python-1.9.22/zscaler/zia/models/common.py +0 -176
  286. zscaler_sdk_python-1.9.22/zscaler/zia/models/custom_file_types.py +0 -64
  287. zscaler_sdk_python-1.9.22/zscaler/zia/models/dedicated_ip_gateways.py +0 -103
  288. zscaler_sdk_python-1.9.22/zscaler/zia/models/device_groups.py +0 -58
  289. zscaler_sdk_python-1.9.22/zscaler/zia/models/devices.py +0 -66
  290. zscaler_sdk_python-1.9.22/zscaler/zia/models/dlp_dictionary.py +0 -245
  291. zscaler_sdk_python-1.9.22/zscaler/zia/models/dlp_engine.py +0 -91
  292. zscaler_sdk_python-1.9.22/zscaler/zia/models/dlp_resources.py +0 -199
  293. zscaler_sdk_python-1.9.22/zscaler/zia/models/dlp_templates.py +0 -67
  294. zscaler_sdk_python-1.9.22/zscaler/zia/models/dlp_web_rules.py +0 -242
  295. zscaler_sdk_python-1.9.22/zscaler/zia/models/dns_gateways.py +0 -109
  296. zscaler_sdk_python-1.9.22/zscaler/zia/models/endusernotification.py +0 -156
  297. zscaler_sdk_python-1.9.22/zscaler/zia/models/filetyperules.py +0 -193
  298. zscaler_sdk_python-1.9.22/zscaler/zia/models/forwarding_control_policy.py +0 -253
  299. zscaler_sdk_python-1.9.22/zscaler/zia/models/ftp_control_policy.py +0 -62
  300. zscaler_sdk_python-1.9.22/zscaler/zia/models/gre_recommended_list.py +0 -74
  301. zscaler_sdk_python-1.9.22/zscaler/zia/models/gre_tunnel_info.py +0 -70
  302. zscaler_sdk_python-1.9.22/zscaler/zia/models/gre_tunnels.py +0 -136
  303. zscaler_sdk_python-1.9.22/zscaler/zia/models/gre_vips.py +0 -167
  304. zscaler_sdk_python-1.9.22/zscaler/zia/models/intermediate_certificates.py +0 -158
  305. zscaler_sdk_python-1.9.22/zscaler/zia/models/iotreport.py +0 -106
  306. zscaler_sdk_python-1.9.22/zscaler/zia/models/ipv6_config.py +0 -107
  307. zscaler_sdk_python-1.9.22/zscaler/zia/models/location_group.py +0 -82
  308. zscaler_sdk_python-1.9.22/zscaler/zia/models/location_management.py +0 -388
  309. zscaler_sdk_python-1.9.22/zscaler/zia/models/malware_protection_settings.py +0 -102
  310. zscaler_sdk_python-1.9.22/zscaler/zia/models/mobile_threat_settings.py +0 -92
  311. zscaler_sdk_python-1.9.22/zscaler/zia/models/nat_control_policy.py +0 -225
  312. zscaler_sdk_python-1.9.22/zscaler/zia/models/nss_servers.py +0 -64
  313. zscaler_sdk_python-1.9.22/zscaler/zia/models/organization_information.py +0 -453
  314. zscaler_sdk_python-1.9.22/zscaler/zia/models/pac_files.py +0 -205
  315. zscaler_sdk_python-1.9.22/zscaler/zia/models/proxies.py +0 -99
  316. zscaler_sdk_python-1.9.22/zscaler/zia/models/proxy_gateways.py +0 -82
  317. zscaler_sdk_python-1.9.22/zscaler/zia/models/remoteassistance.py +0 -59
  318. zscaler_sdk_python-1.9.22/zscaler/zia/models/risk_profiles.py +0 -175
  319. zscaler_sdk_python-1.9.22/zscaler/zia/models/rule_labels.py +0 -81
  320. zscaler_sdk_python-1.9.22/zscaler/zia/models/saas_security_api.py +0 -321
  321. zscaler_sdk_python-1.9.22/zscaler/zia/models/sandbox.py +0 -86
  322. zscaler_sdk_python-1.9.22/zscaler/zia/models/sandboxrules.py +0 -163
  323. zscaler_sdk_python-1.9.22/zscaler/zia/models/security_policy_settings.py +0 -50
  324. zscaler_sdk_python-1.9.22/zscaler/zia/models/shadow_it_report.py +0 -317
  325. zscaler_sdk_python-1.9.22/zscaler/zia/models/ssl_inspection_rules.py +0 -503
  326. zscaler_sdk_python-1.9.22/zscaler/zia/models/subclouds.py +0 -281
  327. zscaler_sdk_python-1.9.22/zscaler/zia/models/system_audit.py +0 -285
  328. zscaler_sdk_python-1.9.22/zscaler/zia/models/tenancy_restriction_profile.py +0 -98
  329. zscaler_sdk_python-1.9.22/zscaler/zia/models/time_intervals.py +0 -63
  330. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_capture.py +0 -263
  331. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_datacenters.py +0 -115
  332. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_dc_exclusions.py +0 -76
  333. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_extranet.py +0 -166
  334. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_static_ip.py +0 -89
  335. zscaler_sdk_python-1.9.22/zscaler/zia/models/traffic_vpn_credentials.py +0 -89
  336. zscaler_sdk_python-1.9.22/zscaler/zia/models/url_filter_cloud_app_settings.py +0 -115
  337. zscaler_sdk_python-1.9.22/zscaler/zia/models/url_filtering_rules.py +0 -218
  338. zscaler_sdk_python-1.9.22/zscaler/zia/models/urlcategory.py +0 -195
  339. zscaler_sdk_python-1.9.22/zscaler/zia/models/user_management.py +0 -182
  340. zscaler_sdk_python-1.9.22/zscaler/zia/models/vzen_clusters.py +0 -79
  341. zscaler_sdk_python-1.9.22/zscaler/zia/models/vzen_nodes.py +0 -100
  342. zscaler_sdk_python-1.9.22/zscaler/zia/models/workload_groups.py +0 -204
  343. zscaler_sdk_python-1.9.22/zscaler/zia/models/zpa_gateway.py +0 -90
  344. zscaler_sdk_python-1.9.22/zscaler/zia/nat_control_policy.py +0 -363
  345. zscaler_sdk_python-1.9.22/zscaler/zia/nss_servers.py +0 -304
  346. zscaler_sdk_python-1.9.22/zscaler/zia/organization_information.py +0 -168
  347. zscaler_sdk_python-1.9.22/zscaler/zia/pac_files.py +0 -566
  348. zscaler_sdk_python-1.9.22/zscaler/zia/policy_export.py +0 -94
  349. zscaler_sdk_python-1.9.22/zscaler/zia/proxies.py +0 -414
  350. zscaler_sdk_python-1.9.22/zscaler/zia/remote_assistance.py +0 -142
  351. zscaler_sdk_python-1.9.22/zscaler/zia/risk_profiles.py +0 -457
  352. zscaler_sdk_python-1.9.22/zscaler/zia/rule_labels.py +0 -327
  353. zscaler_sdk_python-1.9.22/zscaler/zia/saas_security_api.py +0 -371
  354. zscaler_sdk_python-1.9.22/zscaler/zia/sandbox.py +0 -358
  355. zscaler_sdk_python-1.9.22/zscaler/zia/sandbox_rules.py +0 -356
  356. zscaler_sdk_python-1.9.22/zscaler/zia/security_policy_settings.py +0 -262
  357. zscaler_sdk_python-1.9.22/zscaler/zia/shadow_it_report.py +0 -569
  358. zscaler_sdk_python-1.9.22/zscaler/zia/ssl_inspection_rules.py +0 -366
  359. zscaler_sdk_python-1.9.22/zscaler/zia/sub_clouds.py +0 -177
  360. zscaler_sdk_python-1.9.22/zscaler/zia/system_audit.py +0 -85
  361. zscaler_sdk_python-1.9.22/zscaler/zia/tenancy_restriction_profile.py +0 -395
  362. zscaler_sdk_python-1.9.22/zscaler/zia/time_intervals.py +0 -284
  363. zscaler_sdk_python-1.9.22/zscaler/zia/traffic_capture.py +0 -575
  364. zscaler_sdk_python-1.9.22/zscaler/zia/traffic_datacenters.py +0 -355
  365. zscaler_sdk_python-1.9.22/zscaler/zia/traffic_extranet.py +0 -307
  366. zscaler_sdk_python-1.9.22/zscaler/zia/traffic_static_ip.py +0 -397
  367. zscaler_sdk_python-1.9.22/zscaler/zia/traffic_vpn_credentials.py +0 -366
  368. zscaler_sdk_python-1.9.22/zscaler/zia/url_categories.py +0 -763
  369. zscaler_sdk_python-1.9.22/zscaler/zia/url_filtering.py +0 -551
  370. zscaler_sdk_python-1.9.22/zscaler/zia/user_management.py +0 -1002
  371. zscaler_sdk_python-1.9.22/zscaler/zia/vzen_clusters.py +0 -334
  372. zscaler_sdk_python-1.9.22/zscaler/zia/vzen_nodes.py +0 -376
  373. zscaler_sdk_python-1.9.22/zscaler/zia/workload_groups.py +0 -383
  374. zscaler_sdk_python-1.9.22/zscaler/zia/zia_service.py +0 -728
  375. zscaler_sdk_python-1.9.22/zscaler/zia/zpa_gateway.py +0 -353
  376. zscaler_sdk_python-1.9.22/zscaler/zid/__init__.py +0 -0
  377. zscaler_sdk_python-1.9.22/zscaler/zid/api_client.py +0 -531
  378. zscaler_sdk_python-1.9.22/zscaler/zid/groups.py +0 -614
  379. zscaler_sdk_python-1.9.22/zscaler/zid/models/api_client.py +0 -318
  380. zscaler_sdk_python-1.9.22/zscaler/zid/models/common.py +0 -89
  381. zscaler_sdk_python-1.9.22/zscaler/zid/models/groups.py +0 -172
  382. zscaler_sdk_python-1.9.22/zscaler/zid/models/resource_servers.py +0 -200
  383. zscaler_sdk_python-1.9.22/zscaler/zid/models/user_entitlement.py +0 -149
  384. zscaler_sdk_python-1.9.22/zscaler/zid/models/users.py +0 -165
  385. zscaler_sdk_python-1.9.22/zscaler/zid/resource_servers.py +0 -157
  386. zscaler_sdk_python-1.9.22/zscaler/zid/user_entitlement.py +0 -123
  387. zscaler_sdk_python-1.9.22/zscaler/zid/users.py +0 -402
  388. zscaler_sdk_python-1.9.22/zscaler/zid/zid_service.py +0 -70
  389. zscaler_sdk_python-1.9.22/zscaler/zins/__init__.py +0 -21
  390. zscaler_sdk_python-1.9.22/zscaler/zins/cyber_security.py +0 -230
  391. zscaler_sdk_python-1.9.22/zscaler/zins/firewall.py +0 -295
  392. zscaler_sdk_python-1.9.22/zscaler/zins/iot.py +0 -145
  393. zscaler_sdk_python-1.9.22/zscaler/zins/models/__init__.py +0 -19
  394. zscaler_sdk_python-1.9.22/zscaler/zins/models/common.py +0 -284
  395. zscaler_sdk_python-1.9.22/zscaler/zins/models/enums.py +0 -179
  396. zscaler_sdk_python-1.9.22/zscaler/zins/models/inputs.py +0 -476
  397. zscaler_sdk_python-1.9.22/zscaler/zins/saas_security.py +0 -142
  398. zscaler_sdk_python-1.9.22/zscaler/zins/shadow_it.py +0 -339
  399. zscaler_sdk_python-1.9.22/zscaler/zins/web_traffic.py +0 -488
  400. zscaler_sdk_python-1.9.22/zscaler/zins/zins_service.py +0 -78
  401. zscaler_sdk_python-1.9.22/zscaler/zms/agent_groups.py +0 -212
  402. zscaler_sdk_python-1.9.22/zscaler/zms/agents.py +0 -289
  403. zscaler_sdk_python-1.9.22/zscaler/zms/app_catalog.py +0 -141
  404. zscaler_sdk_python-1.9.22/zscaler/zms/app_zones.py +0 -132
  405. zscaler_sdk_python-1.9.22/zscaler/zms/models/__init__.py +0 -19
  406. zscaler_sdk_python-1.9.22/zscaler/zms/models/common.py +0 -447
  407. zscaler_sdk_python-1.9.22/zscaler/zms/models/enums.py +0 -346
  408. zscaler_sdk_python-1.9.22/zscaler/zms/models/inputs.py +0 -535
  409. zscaler_sdk_python-1.9.22/zscaler/zms/nonces.py +0 -216
  410. zscaler_sdk_python-1.9.22/zscaler/zms/policy_rules.py +0 -230
  411. zscaler_sdk_python-1.9.22/zscaler/zms/resource_groups.py +0 -315
  412. zscaler_sdk_python-1.9.22/zscaler/zms/resources.py +0 -287
  413. zscaler_sdk_python-1.9.22/zscaler/zms/tags.py +0 -339
  414. zscaler_sdk_python-1.9.22/zscaler/zms/zms_service.py +0 -105
  415. zscaler_sdk_python-1.9.22/zscaler/zpa/__init__.py +0 -0
  416. zscaler_sdk_python-1.9.22/zscaler/zpa/admin_sso_controller.py +0 -128
  417. zscaler_sdk_python-1.9.22/zscaler/zpa/administrator_controller.py +0 -304
  418. zscaler_sdk_python-1.9.22/zscaler/zpa/api_keys.py +0 -307
  419. zscaler_sdk_python-1.9.22/zscaler/zpa/app_connector_groups.py +0 -470
  420. zscaler_sdk_python-1.9.22/zscaler/zpa/app_connector_schedule.py +0 -219
  421. zscaler_sdk_python-1.9.22/zscaler/zpa/app_connectors.py +0 -281
  422. zscaler_sdk_python-1.9.22/zscaler/zpa/app_protection.py +0 -1199
  423. zscaler_sdk_python-1.9.22/zscaler/zpa/app_segment_by_type.py +0 -147
  424. zscaler_sdk_python-1.9.22/zscaler/zpa/app_segments_ba.py +0 -530
  425. zscaler_sdk_python-1.9.22/zscaler/zpa/app_segments_ba_v2.py +0 -487
  426. zscaler_sdk_python-1.9.22/zscaler/zpa/app_segments_inspection.py +0 -518
  427. zscaler_sdk_python-1.9.22/zscaler/zpa/app_segments_pra.py +0 -484
  428. zscaler_sdk_python-1.9.22/zscaler/zpa/application_segment.py +0 -1246
  429. zscaler_sdk_python-1.9.22/zscaler/zpa/branch_connector_group.py +0 -161
  430. zscaler_sdk_python-1.9.22/zscaler/zpa/branch_connectors.py +0 -94
  431. zscaler_sdk_python-1.9.22/zscaler/zpa/browser_protection.py +0 -230
  432. zscaler_sdk_python-1.9.22/zscaler/zpa/c2c_ip_ranges.py +0 -402
  433. zscaler_sdk_python-1.9.22/zscaler/zpa/cbi_banner.py +0 -256
  434. zscaler_sdk_python-1.9.22/zscaler/zpa/cbi_certificate.py +0 -249
  435. zscaler_sdk_python-1.9.22/zscaler/zpa/cbi_profile.py +0 -383
  436. zscaler_sdk_python-1.9.22/zscaler/zpa/cbi_region.py +0 -77
  437. zscaler_sdk_python-1.9.22/zscaler/zpa/cbi_zpa_profile.py +0 -135
  438. zscaler_sdk_python-1.9.22/zscaler/zpa/certificates.py +0 -358
  439. zscaler_sdk_python-1.9.22/zscaler/zpa/client_settings.py +0 -204
  440. zscaler_sdk_python-1.9.22/zscaler/zpa/cloud_connector_controller.py +0 -93
  441. zscaler_sdk_python-1.9.22/zscaler/zpa/cloud_connector_groups.py +0 -193
  442. zscaler_sdk_python-1.9.22/zscaler/zpa/config_override_controller.py +0 -217
  443. zscaler_sdk_python-1.9.22/zscaler/zpa/customer_controller.py +0 -71
  444. zscaler_sdk_python-1.9.22/zscaler/zpa/customer_domain.py +0 -170
  445. zscaler_sdk_python-1.9.22/zscaler/zpa/customer_dr_tool.py +0 -94
  446. zscaler_sdk_python-1.9.22/zscaler/zpa/customer_version_profile.py +0 -183
  447. zscaler_sdk_python-1.9.22/zscaler/zpa/emergency_access.py +0 -346
  448. zscaler_sdk_python-1.9.22/zscaler/zpa/enrollment_certificates.py +0 -447
  449. zscaler_sdk_python-1.9.22/zscaler/zpa/extranet_resource.py +0 -93
  450. zscaler_sdk_python-1.9.22/zscaler/zpa/idp.py +0 -148
  451. zscaler_sdk_python-1.9.22/zscaler/zpa/legacy.py +0 -1045
  452. zscaler_sdk_python-1.9.22/zscaler/zpa/location_controller.py +0 -229
  453. zscaler_sdk_python-1.9.22/zscaler/zpa/lss.py +0 -569
  454. zscaler_sdk_python-1.9.22/zscaler/zpa/machine_groups.py +0 -205
  455. zscaler_sdk_python-1.9.22/zscaler/zpa/managed_browser_profile.py +0 -99
  456. zscaler_sdk_python-1.9.22/zscaler/zpa/microtenants.py +0 -394
  457. zscaler_sdk_python-1.9.22/zscaler/zpa/models/administrator_controller.py +0 -147
  458. zscaler_sdk_python-1.9.22/zscaler/zpa/models/api_keys.py +0 -103
  459. zscaler_sdk_python-1.9.22/zscaler/zpa/models/app_connector_groups.py +0 -294
  460. zscaler_sdk_python-1.9.22/zscaler/zpa/models/app_connector_schedule.py +0 -56
  461. zscaler_sdk_python-1.9.22/zscaler/zpa/models/app_connectors.py +0 -177
  462. zscaler_sdk_python-1.9.22/zscaler/zpa/models/app_protection_predefined_controls.py +0 -221
  463. zscaler_sdk_python-1.9.22/zscaler/zpa/models/app_protection_profile.py +0 -826
  464. zscaler_sdk_python-1.9.22/zscaler/zpa/models/application_segment.py +0 -1129
  465. zscaler_sdk_python-1.9.22/zscaler/zpa/models/application_segment_lb.py +0 -96
  466. zscaler_sdk_python-1.9.22/zscaler/zpa/models/application_servers.py +0 -63
  467. zscaler_sdk_python-1.9.22/zscaler/zpa/models/branch_connectors.py +0 -93
  468. zscaler_sdk_python-1.9.22/zscaler/zpa/models/browser_protection.py +0 -296
  469. zscaler_sdk_python-1.9.22/zscaler/zpa/models/c2c_ip_ranges.py +0 -109
  470. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cbi_banner.py +0 -61
  471. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cbi_certificate.py +0 -50
  472. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cbi_profile.py +0 -528
  473. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cbi_region.py +0 -46
  474. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cbi_zpa_profile.py +0 -120
  475. zscaler_sdk_python-1.9.22/zscaler/zpa/models/certificates.py +0 -94
  476. zscaler_sdk_python-1.9.22/zscaler/zpa/models/client_settings.py +0 -80
  477. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cloud_connector_controller.py +0 -87
  478. zscaler_sdk_python-1.9.22/zscaler/zpa/models/cloud_connector_groups.py +0 -63
  479. zscaler_sdk_python-1.9.22/zscaler/zpa/models/common.py +0 -574
  480. zscaler_sdk_python-1.9.22/zscaler/zpa/models/config_override_controller.py +0 -88
  481. zscaler_sdk_python-1.9.22/zscaler/zpa/models/customer_controller.py +0 -131
  482. zscaler_sdk_python-1.9.22/zscaler/zpa/models/customer_domain.py +0 -73
  483. zscaler_sdk_python-1.9.22/zscaler/zpa/models/customer_dr_tool.py +0 -76
  484. zscaler_sdk_python-1.9.22/zscaler/zpa/models/customer_version_profile.py +0 -151
  485. zscaler_sdk_python-1.9.22/zscaler/zpa/models/emergency_access.py +0 -73
  486. zscaler_sdk_python-1.9.22/zscaler/zpa/models/enrollment_certificates.py +0 -116
  487. zscaler_sdk_python-1.9.22/zscaler/zpa/models/idp.py +0 -224
  488. zscaler_sdk_python-1.9.22/zscaler/zpa/models/lss.py +0 -166
  489. zscaler_sdk_python-1.9.22/zscaler/zpa/models/machine_groups.py +0 -70
  490. zscaler_sdk_python-1.9.22/zscaler/zpa/models/managed_browser_profile.py +0 -135
  491. zscaler_sdk_python-1.9.22/zscaler/zpa/models/microtenants.py +0 -83
  492. zscaler_sdk_python-1.9.22/zscaler/zpa/models/npn_client_controller.py +0 -78
  493. zscaler_sdk_python-1.9.22/zscaler/zpa/models/oauth2_user_code.py +0 -67
  494. zscaler_sdk_python-1.9.22/zscaler/zpa/models/policyset_controller_v1.py +0 -313
  495. zscaler_sdk_python-1.9.22/zscaler/zpa/models/policyset_controller_v2.py +0 -303
  496. zscaler_sdk_python-1.9.22/zscaler/zpa/models/posture_profiles.py +0 -107
  497. zscaler_sdk_python-1.9.22/zscaler/zpa/models/pra_approval.py +0 -135
  498. zscaler_sdk_python-1.9.22/zscaler/zpa/models/pra_console.py +0 -156
  499. zscaler_sdk_python-1.9.22/zscaler/zpa/models/pra_cred_pool_controller.py +0 -77
  500. zscaler_sdk_python-1.9.22/zscaler/zpa/models/pra_credential.py +0 -68
  501. zscaler_sdk_python-1.9.22/zscaler/zpa/models/pra_portal.py +0 -109
  502. zscaler_sdk_python-1.9.22/zscaler/zpa/models/private_cloud_controller.py +0 -475
  503. zscaler_sdk_python-1.9.22/zscaler/zpa/models/private_cloud_group.py +0 -224
  504. zscaler_sdk_python-1.9.22/zscaler/zpa/models/provisioning_keys.py +0 -78
  505. zscaler_sdk_python-1.9.22/zscaler/zpa/models/role_controller.py +0 -387
  506. zscaler_sdk_python-1.9.22/zscaler/zpa/models/saml_attributes.py +0 -65
  507. zscaler_sdk_python-1.9.22/zscaler/zpa/models/scim_attributes.py +0 -80
  508. zscaler_sdk_python-1.9.22/zscaler/zpa/models/scim_groups.py +0 -59
  509. zscaler_sdk_python-1.9.22/zscaler/zpa/models/segment_group.py +0 -79
  510. zscaler_sdk_python-1.9.22/zscaler/zpa/models/server_group.py +0 -115
  511. zscaler_sdk_python-1.9.22/zscaler/zpa/models/service_edge_groups.py +0 -149
  512. zscaler_sdk_python-1.9.22/zscaler/zpa/models/service_edge_schedule.py +0 -56
  513. zscaler_sdk_python-1.9.22/zscaler/zpa/models/service_edges.py +0 -161
  514. zscaler_sdk_python-1.9.22/zscaler/zpa/models/stepup_auth_level.py +0 -82
  515. zscaler_sdk_python-1.9.22/zscaler/zpa/models/tag_group.py +0 -162
  516. zscaler_sdk_python-1.9.22/zscaler/zpa/models/tag_key.py +0 -115
  517. zscaler_sdk_python-1.9.22/zscaler/zpa/models/tag_namespace.py +0 -88
  518. zscaler_sdk_python-1.9.22/zscaler/zpa/models/trusted_network.py +0 -67
  519. zscaler_sdk_python-1.9.22/zscaler/zpa/models/user_portal_aup.py +0 -83
  520. zscaler_sdk_python-1.9.22/zscaler/zpa/models/user_portal_controller.py +0 -109
  521. zscaler_sdk_python-1.9.22/zscaler/zpa/models/user_portal_link.py +0 -137
  522. zscaler_sdk_python-1.9.22/zscaler/zpa/models/zia_customer_config.py +0 -104
  523. zscaler_sdk_python-1.9.22/zscaler/zpa/npn_client_controller.py +0 -96
  524. zscaler_sdk_python-1.9.22/zscaler/zpa/oauth2_user_code.py +0 -174
  525. zscaler_sdk_python-1.9.22/zscaler/zpa/policies.py +0 -4434
  526. zscaler_sdk_python-1.9.22/zscaler/zpa/posture_profiles.py +0 -148
  527. zscaler_sdk_python-1.9.22/zscaler/zpa/pra_approval.py +0 -389
  528. zscaler_sdk_python-1.9.22/zscaler/zpa/pra_console.py +0 -433
  529. zscaler_sdk_python-1.9.22/zscaler/zpa/pra_credential.py +0 -382
  530. zscaler_sdk_python-1.9.22/zscaler/zpa/pra_credential_pool.py +0 -341
  531. zscaler_sdk_python-1.9.22/zscaler/zpa/pra_portal.py +0 -290
  532. zscaler_sdk_python-1.9.22/zscaler/zpa/private_cloud_controller.py +0 -279
  533. zscaler_sdk_python-1.9.22/zscaler/zpa/private_cloud_group.py +0 -435
  534. zscaler_sdk_python-1.9.22/zscaler/zpa/provisioning.py +0 -455
  535. zscaler_sdk_python-1.9.22/zscaler/zpa/role_controller.py +0 -415
  536. zscaler_sdk_python-1.9.22/zscaler/zpa/saml_attributes.py +0 -324
  537. zscaler_sdk_python-1.9.22/zscaler/zpa/scim_attributes.py +0 -189
  538. zscaler_sdk_python-1.9.22/zscaler/zpa/scim_groups.py +0 -156
  539. zscaler_sdk_python-1.9.22/zscaler/zpa/segment_groups.py +0 -361
  540. zscaler_sdk_python-1.9.22/zscaler/zpa/server_groups.py +0 -344
  541. zscaler_sdk_python-1.9.22/zscaler/zpa/servers.py +0 -353
  542. zscaler_sdk_python-1.9.22/zscaler/zpa/service_edge_group.py +0 -355
  543. zscaler_sdk_python-1.9.22/zscaler/zpa/service_edge_schedule.py +0 -219
  544. zscaler_sdk_python-1.9.22/zscaler/zpa/service_edges.py +0 -265
  545. zscaler_sdk_python-1.9.22/zscaler/zpa/stepup_auth_level.py +0 -100
  546. zscaler_sdk_python-1.9.22/zscaler/zpa/tag_group.py +0 -262
  547. zscaler_sdk_python-1.9.22/zscaler/zpa/tag_key.py +0 -325
  548. zscaler_sdk_python-1.9.22/zscaler/zpa/tag_namespace.py +0 -351
  549. zscaler_sdk_python-1.9.22/zscaler/zpa/trusted_networks.py +0 -152
  550. zscaler_sdk_python-1.9.22/zscaler/zpa/user_portal_aup.py +0 -380
  551. zscaler_sdk_python-1.9.22/zscaler/zpa/user_portal_controller.py +0 -309
  552. zscaler_sdk_python-1.9.22/zscaler/zpa/user_portal_link.py +0 -464
  553. zscaler_sdk_python-1.9.22/zscaler/zpa/workload_tag_group.py +0 -85
  554. zscaler_sdk_python-1.9.22/zscaler/zpa/zia_customer_config.py +0 -262
  555. zscaler_sdk_python-1.9.22/zscaler/zpa/zpa_service.py +0 -447
  556. zscaler_sdk_python-1.9.22/zscaler/ztb/__init__.py +0 -15
  557. zscaler_sdk_python-1.9.22/zscaler/ztb/alarms.py +0 -434
  558. zscaler_sdk_python-1.9.22/zscaler/ztb/api_key.py +0 -190
  559. zscaler_sdk_python-1.9.22/zscaler/ztb/app_connector_config.py +0 -152
  560. zscaler_sdk_python-1.9.22/zscaler/ztb/devices.py +0 -459
  561. zscaler_sdk_python-1.9.22/zscaler/ztb/groups_router.py +0 -346
  562. zscaler_sdk_python-1.9.22/zscaler/ztb/legacy.py +0 -550
  563. zscaler_sdk_python-1.9.22/zscaler/ztb/logs.py +0 -84
  564. zscaler_sdk_python-1.9.22/zscaler/ztb/models/__init__.py +0 -0
  565. zscaler_sdk_python-1.9.22/zscaler/ztb/models/alarms.py +0 -196
  566. zscaler_sdk_python-1.9.22/zscaler/ztb/models/api_key.py +0 -92
  567. zscaler_sdk_python-1.9.22/zscaler/ztb/models/app_connector_config.py +0 -106
  568. zscaler_sdk_python-1.9.22/zscaler/ztb/models/common.py +0 -66
  569. zscaler_sdk_python-1.9.22/zscaler/ztb/models/devices.py +0 -204
  570. zscaler_sdk_python-1.9.22/zscaler/ztb/models/groups_router.py +0 -141
  571. zscaler_sdk_python-1.9.22/zscaler/ztb/models/logs.py +0 -110
  572. zscaler_sdk_python-1.9.22/zscaler/ztb/models/policy_comments.py +0 -105
  573. zscaler_sdk_python-1.9.22/zscaler/ztb/models/ransomware_kill.py +0 -138
  574. zscaler_sdk_python-1.9.22/zscaler/ztb/models/site.py +0 -534
  575. zscaler_sdk_python-1.9.22/zscaler/ztb/models/site2site_vpn.py +0 -397
  576. zscaler_sdk_python-1.9.22/zscaler/ztb/models/template_router.py +0 -120
  577. zscaler_sdk_python-1.9.22/zscaler/ztb/policy_comments.py +0 -203
  578. zscaler_sdk_python-1.9.22/zscaler/ztb/ransomware_kill.py +0 -254
  579. zscaler_sdk_python-1.9.22/zscaler/ztb/site.py +0 -510
  580. zscaler_sdk_python-1.9.22/zscaler/ztb/site2site_vpn.py +0 -353
  581. zscaler_sdk_python-1.9.22/zscaler/ztb/template_router.py +0 -410
  582. zscaler_sdk_python-1.9.22/zscaler/ztb/ztb_service.py +0 -135
  583. zscaler_sdk_python-1.9.22/zscaler/ztw/__init__.py +0 -0
  584. zscaler_sdk_python-1.9.22/zscaler/ztw/account_details.py +0 -300
  585. zscaler_sdk_python-1.9.22/zscaler/ztw/account_groups.py +0 -383
  586. zscaler_sdk_python-1.9.22/zscaler/ztw/activation.py +0 -117
  587. zscaler_sdk_python-1.9.22/zscaler/ztw/admin_roles.py +0 -330
  588. zscaler_sdk_python-1.9.22/zscaler/ztw/admin_users.py +0 -398
  589. zscaler_sdk_python-1.9.22/zscaler/ztw/api_keys.py +0 -137
  590. zscaler_sdk_python-1.9.22/zscaler/ztw/discovery_service.py +0 -112
  591. zscaler_sdk_python-1.9.22/zscaler/ztw/ec_groups.py +0 -333
  592. zscaler_sdk_python-1.9.22/zscaler/ztw/forwarding_gateways.py +0 -253
  593. zscaler_sdk_python-1.9.22/zscaler/ztw/forwarding_rules.py +0 -405
  594. zscaler_sdk_python-1.9.22/zscaler/ztw/ip_destination_groups.py +0 -409
  595. zscaler_sdk_python-1.9.22/zscaler/ztw/ip_groups.py +0 -256
  596. zscaler_sdk_python-1.9.22/zscaler/ztw/ip_source_groups.py +0 -260
  597. zscaler_sdk_python-1.9.22/zscaler/ztw/legacy.py +0 -537
  598. zscaler_sdk_python-1.9.22/zscaler/ztw/location_management.py +0 -274
  599. zscaler_sdk_python-1.9.22/zscaler/ztw/location_template.py +0 -397
  600. zscaler_sdk_python-1.9.22/zscaler/ztw/models/account_groups.py +0 -73
  601. zscaler_sdk_python-1.9.22/zscaler/ztw/models/activation.py +0 -58
  602. zscaler_sdk_python-1.9.22/zscaler/ztw/models/admin_roles.py +0 -98
  603. zscaler_sdk_python-1.9.22/zscaler/ztw/models/admin_users.py +0 -151
  604. zscaler_sdk_python-1.9.22/zscaler/ztw/models/api_keys.py +0 -92
  605. zscaler_sdk_python-1.9.22/zscaler/ztw/models/common.py +0 -117
  606. zscaler_sdk_python-1.9.22/zscaler/ztw/models/discovery_service.py +0 -80
  607. zscaler_sdk_python-1.9.22/zscaler/ztw/models/ec_group_vm.py +0 -122
  608. zscaler_sdk_python-1.9.22/zscaler/ztw/models/ecgroup.py +0 -458
  609. zscaler_sdk_python-1.9.22/zscaler/ztw/models/forwarding_gateways.py +0 -112
  610. zscaler_sdk_python-1.9.22/zscaler/ztw/models/forwarding_rules.py +0 -360
  611. zscaler_sdk_python-1.9.22/zscaler/ztw/models/ip_destination_groups.py +0 -73
  612. zscaler_sdk_python-1.9.22/zscaler/ztw/models/ip_groups.py +0 -59
  613. zscaler_sdk_python-1.9.22/zscaler/ztw/models/ip_source_groups.py +0 -59
  614. zscaler_sdk_python-1.9.22/zscaler/ztw/models/location_management.py +0 -256
  615. zscaler_sdk_python-1.9.22/zscaler/ztw/models/location_templates.py +0 -174
  616. zscaler_sdk_python-1.9.22/zscaler/ztw/models/nw_service.py +0 -96
  617. zscaler_sdk_python-1.9.22/zscaler/ztw/models/nw_service_groups.py +0 -57
  618. zscaler_sdk_python-1.9.22/zscaler/ztw/models/provisioning_url.py +0 -225
  619. zscaler_sdk_python-1.9.22/zscaler/ztw/models/public_cloud_info.py +0 -168
  620. zscaler_sdk_python-1.9.22/zscaler/ztw/models/traffic_vpn_credentials.py +0 -91
  621. zscaler_sdk_python-1.9.22/zscaler/ztw/models/workload_groups.py +0 -204
  622. zscaler_sdk_python-1.9.22/zscaler/ztw/models/zpa_resources.py +0 -62
  623. zscaler_sdk_python-1.9.22/zscaler/ztw/nw_service.py +0 -303
  624. zscaler_sdk_python-1.9.22/zscaler/ztw/nw_service_groups.py +0 -105
  625. zscaler_sdk_python-1.9.22/zscaler/ztw/provisioning_url.py +0 -294
  626. zscaler_sdk_python-1.9.22/zscaler/ztw/public_cloud_info.py +0 -670
  627. zscaler_sdk_python-1.9.22/zscaler/ztw/workload_groups.py +0 -90
  628. zscaler_sdk_python-1.9.22/zscaler/ztw/ztw_service.py +0 -220
  629. zscaler_sdk_python-1.9.22/zscaler/zwa/__init__.py +0 -0
  630. zscaler_sdk_python-1.9.22/zscaler/zwa/audit_logs.py +0 -134
  631. zscaler_sdk_python-1.9.22/zscaler/zwa/dlp_incidents.py +0 -644
  632. zscaler_sdk_python-1.9.22/zscaler/zwa/legacy.py +0 -280
  633. zscaler_sdk_python-1.9.22/zscaler/zwa/models/audit_logs.py +0 -136
  634. zscaler_sdk_python-1.9.22/zscaler/zwa/models/change_history.py +0 -62
  635. zscaler_sdk_python-1.9.22/zscaler/zwa/models/common.py +0 -713
  636. zscaler_sdk_python-1.9.22/zscaler/zwa/models/generated_tickets.py +0 -153
  637. zscaler_sdk_python-1.9.22/zscaler/zwa/models/incident_details.py +0 -204
  638. zscaler_sdk_python-1.9.22/zscaler/zwa/models/incident_evidence.py +0 -58
  639. zscaler_sdk_python-1.9.22/zscaler/zwa/models/incident_group_search.py +0 -60
  640. zscaler_sdk_python-1.9.22/zscaler/zwa/models/incident_search.py +0 -94
  641. zscaler_sdk_python-1.9.22/zscaler/zwa/models/incident_trigger.py +0 -46
  642. zscaler_sdk_python-1.9.22/zscaler/zwa/zwa_service.py +0 -41
  643. {zscaler_sdk_python-1.9.22 → zscaler_sdk_python-2.0.0b1}/LICENSE.md +0 -0
  644. /zscaler_sdk_python-1.9.22/zscaler/cache/__init__.py → /zscaler_sdk_python-2.0.0b1/zssdk/py.typed +0 -0
@@ -0,0 +1,933 @@
1
+ Metadata-Version: 2.4
2
+ Name: zscaler-sdk-python
3
+ Version: 2.0.0b1
4
+ Summary: Zscaler SDK for Python
5
+ Author-email: "Zscaler Inc." <devrel@zscaler.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/zscaler/zscaler-sdk-python
8
+ Project-URL: Repository, https://github.com/zscaler/zscaler-sdk-python
9
+ Project-URL: Documentation, http://automation.zsapidocs.net/docs/
10
+ Project-URL: Bug Tracker, https://github.com/zscaler/zscaler-sdk-python/issues
11
+ Keywords: zscaler,sdk,zpa,zia,zdx,zcc,ztw,zid,zidentity
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Topic :: Security
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE.md
23
+ Requires-Dist: cryptography>=46.0.0
24
+ Requires-Dist: httpx<2.0.0,>=0.28.0
25
+ Requires-Dist: jmespath>=1.0.0
26
+ Requires-Dist: PyJWT<3.0.0,>=2.8.0
27
+ Provides-Extra: dev
28
+ Requires-Dist: black==25.12.0; extra == "dev"
29
+ Requires-Dist: faker>=30.0.0; extra == "dev"
30
+ Requires-Dist: flake8>=7.0.0; extra == "dev"
31
+ Requires-Dist: isort==7.0.0; extra == "dev"
32
+ Requires-Dist: pylint==4.0.4; extra == "dev"
33
+ Requires-Dist: pytest==9.0.1; extra == "dev"
34
+ Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
35
+ Requires-Dist: pytest-httpserver>=1.0.0; extra == "dev"
36
+ Requires-Dist: build>=1.0.0; extra == "dev"
37
+ Requires-Dist: twine>=5.0.0; extra == "dev"
38
+ Requires-Dist: anyio==4.12.0; extra == "dev"
39
+ Requires-Dist: autopep8==2.3.2; extra == "dev"
40
+ Requires-Dist: tomlkit==0.13.3; extra == "dev"
41
+ Requires-Dist: uv==0.9.21; extra == "dev"
42
+ Dynamic: license-file
43
+
44
+ # Official Zscaler OneAPI SDK for Python
45
+
46
+ [![PyPI Version](https://img.shields.io/pypi/v/zscaler-sdk-python.svg)](https://pypi.org/project/zscaler-sdk-python)
47
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/zscaler-sdk-python.svg)](https://pypi.org/project/zscaler-sdk-python)
48
+ [![License](https://img.shields.io/badge/license-ISC-blue.svg)](LICENSE.md)
49
+ [![PyPI - Downloads](https://img.shields.io/pypi/dw/zscaler-sdk-python)](https://pypistats.org/packages/zscaler-sdk-python)
50
+ [![Documentation Status](https://img.shields.io/badge/docs-online-success)](http://automation.zsapidocs.net/docs/)
51
+ [![Zscaler Community](https://img.shields.io/badge/zscaler-community-blue)](https://community.zscaler.com/)
52
+
53
+ ---
54
+
55
+ ## Table of Contents
56
+
57
+ - [Overview](#overview)
58
+ - [Why This SDK](#why-this-sdk)
59
+ - [Prerequisites](#prerequisites)
60
+ - [Installation](#installation)
61
+ - [Building the SDK](#building-the-sdk)
62
+ - [Getting Started](#getting-started)
63
+ - [Authentication](#authentication)
64
+ - [Basic Usage](#basic-usage)
65
+ - [Configuration](#configuration)
66
+ - [Configuration File](#configuration-file)
67
+ - [Environment Variables](#environment-variables)
68
+ - [Constructor Parameters](#constructor-parameters)
69
+ - [Configuration Precedence](#configuration-precedence)
70
+ - [API Layers](#api-layers)
71
+ - [Resource Layer (Recommended)](#resource-layer-recommended)
72
+ - [Service Client Layer](#service-client-layer)
73
+ - [Supported Products](#supported-products)
74
+ - [ZPA: customer_id Requirement](#zpa-customer_id-requirement)
75
+ - [ZIA and ZTW Context Manager](#zia-and-ztw-context-manager)
76
+ - [Collections and Pagination](#collections-and-pagination)
77
+ - [Error Handling](#error-handling)
78
+ - [Rate Limiting and Retry Mechanism](#rate-limiting-and-retry-mechanism)
79
+ - [Logging](#logging)
80
+ - [Auto-completion and IntelliSense](#auto-completion-and-intellisense)
81
+ - [Examples](#examples)
82
+ - [Migrating from zscaler-sdk-python](#migrating-from-zscaler-sdk-python)
83
+ - [Contributing](#contributing)
84
+ - [Need Help?](#need-help)
85
+
86
+ ---
87
+
88
+ ## Overview
89
+
90
+ The Zscaler OneAPI SDK for Python (`zscaler-sdk-python`) provides a convenient and consistent interface for interacting with Zscaler product APIs through the [OneAPI](https://help.zscaler.com/oneapi/understanding-oneapi) framework.
91
+
92
+ This SDK is designed exclusively for OneAPI. It uses OAuth2 authentication via [Zscaler Identity (Zidentity)](https://help.zscaler.com/zidentity/what-zidentity) and provides a high-level `Session` object that manages credentials, configuration, and API calls.
93
+
94
+ This SDK can be used in your server-side code to interact with the Zscaler API platform across multiple products such as:
95
+
96
+ - [ZPA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zpa)
97
+ - [ZIA API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zia)
98
+ - [ZDX API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zdx)
99
+ - [ZCC API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcc)
100
+ - [ZIdentity](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zid)
101
+ - [ZTW API](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/zcloudconnector)
102
+
103
+ > **Note:** This SDK (`zscaler-sdk-python`) is the next-generation replacement for the previous [`zscaler-sdk-python`](https://github.com/zscaler/zscaler-sdk-python) package. See [Why This SDK](#why-this-sdk) and [Migrating from zscaler-sdk-python](#migrating-from-zscaler-sdk-python) below.
104
+
105
+ ### Key Features
106
+
107
+ - **True resource objects with dot notation** — Work with resources as Python objects (`user.name`, `cred.fqdn`), not raw dictionaries (`user["name"]`). Attribute access, assignment, and IDE auto-completion work out of the box.
108
+ - **Active Record pattern** — Create, read, update, and delete resources with natural method calls: `cred.create()`, `cred.load()`, `cred.update()`, `cred.delete()`. No need to call separate service methods and pass IDs around.
109
+ - **Non-standard operations as first-class methods** — Operations beyond CRUDL (e.g., `activate()`, `bulk_delete_assistant()`, `export_application()`, `validate_wild_card_domain_name()`) are dynamically generated from API metadata and exposed as snake_case methods on the same resource instances — no drop-down to a low-level client required.
110
+ - **Iterator-based collections with chaining** — Paginate effortlessly with `.all()`, apply server-side filters with `.filter()`, cap results with `.limit()`, tune performance with `.page_size()`, and apply client-side JMESPath queries with `.search()` — all chainable in a single expression.
111
+ - **Python exceptions, not error tuples** — Errors raise typed exceptions (`BadRequestException`, `NotFoundException`) with full context. Use standard `try`/`except` instead of unpacking `(result, response, error)` tuples on every call.
112
+ - **Automatic `snake_case` / `camelCase` conversion** — Write idiomatic Python everywhere. The SDK transparently converts to API `camelCase` on the wire and back.
113
+ - **One session, all products** — A single `Session` with unified OAuth2 authentication gives you `session.zia`, `session.zpa`, `session.zcc`, `session.zid`, `session.zdx`, and `session.ztw`. No per-product client setup or separate credentials.
114
+ - **IDE auto-completion and type checking** — Ships with PEP 484 `.pyi` type stubs. VS Code, PyCharm, and other editors provide auto-complete, parameter hints, and docstrings for every resource and method.
115
+ - **Transparent retry and rate-limit handling** — Built-in exponential backoff with `Retry-After` header support. Rate limits and transient errors are handled automatically — no retry logic needed in your code.
116
+ - **Metadata-driven architecture** — API operations, shapes, pagination, and error mappings are defined in JSON metadata generated from TypeSpec. New endpoints are added via JSON, not Python code.
117
+ - **Context managers for ZIA/ZTW activation** — `with session.zia as zia:` automatically activates staged configuration changes on exit. No manual activation calls required.
118
+
119
+ ### SDK Design and Data Model
120
+
121
+ This SDK uses a resource-oriented design with the following characteristics:
122
+
123
+ - **Resource objects** — Resources (e.g., `VpnCredential`, `UserProfile`) are Python objects with attribute access (dot notation), e.g., `cred.fqdn`, `user.login_name`.
124
+ - **Snake_case** — Property names use `snake_case` in Python while the SDK maps to/from API `camelCase` automatically.
125
+ - **Native types** — Data is represented as native Python types; responses are JSON-serializable.
126
+
127
+ ---
128
+
129
+ ## Why This SDK
130
+
131
+ If you are currently using [`zscaler-sdk-python`](https://github.com/zscaler/zscaler-sdk-python), here is why you should switch to `zscaler-sdk-python`:
132
+
133
+ | Capability | `zscaler-sdk-python` (previous) | `zscaler-sdk-python` (this SDK) |
134
+ |---|---|---|
135
+ | **Data access** | Raw `dict` — `user["name"]` | Resource objects — `user.name` |
136
+ | **CRUD pattern** | Service methods returning `(result, resp, error)` tuples | Active Record — `resource.create()`, `.load()`, `.update()`, `.delete()` |
137
+ | **Error handling** | Go-style tuples: `result, resp, err = ...` | Python exceptions: `try` / `except NotFoundException` |
138
+ | **Pagination** | Manual loop with `resp.has_next()` / `resp.next()` | Iterator-based: `for item in resources.all().limit(100)` |
139
+ | **Filtering** | Manual query params dict | Chainable `.filter()` + `.search()` (JMESPath) |
140
+ | **Case conversion** | Caller manages `camelCase` ↔ `snake_case` | Automatic — write `snake_case`, API receives `camelCase` |
141
+ | **IDE support** | No type stubs | PEP 484 `.pyi` stubs — auto-completion, param hints, docstrings |
142
+
143
+ ### Side-by-side comparison
144
+
145
+ **Previous SDK — dict access, error tuples, manual pagination:**
146
+
147
+ ```python
148
+ from zscaler import ZscalerClient
149
+
150
+ config = {"clientId": "...", "clientSecret": "...", "vanityDomain": "..."}
151
+
152
+ with ZscalerClient(config) as client:
153
+ # List users — must unpack tuple on every call
154
+ users, resp, err = client.zia.user_management.list_users()
155
+ if err:
156
+ print(f"Error: {err}")
157
+ else:
158
+ for user in users:
159
+ print(user["name"]) # dict access
160
+
161
+ # Manual pagination
162
+ while resp.has_next():
163
+ more_users, resp, err = resp.next()
164
+ if err:
165
+ break
166
+ for user in more_users:
167
+ print(user["name"])
168
+ ```
169
+
170
+ **This SDK — resource objects, exceptions, iterator collections:**
171
+
172
+ ```python
173
+ from zssdk import Session
174
+
175
+ session = Session(vanity_domain="...", client_id="...", client_secret="...")
176
+
177
+ # Iterate all users — pagination is automatic
178
+ for user in session.zia.admin_users.all():
179
+ print(user.name) # attribute access
180
+
181
+ # Chain filters, limits, and search in one expression
182
+ for user in session.zia.admin_users.filter(search="SDWAN").limit(10):
183
+ print(user.name)
184
+
185
+ # Errors are exceptions, not return values
186
+ from zssdk.zsresource.exceptions import NotFoundException
187
+ try:
188
+ role = session.zia.AdminRole(id=99999)
189
+ role.load()
190
+ except NotFoundException:
191
+ print("Role not found")
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Prerequisites
197
+
198
+ - **Python 3.10+**
199
+ - An administrator account for the Zscaler products you wish to manage
200
+ - [API credentials](https://help.zscaler.com/zidentity/about-api-clients) created in the Zscaler Identity Admin UI (Client ID and Client Secret)
201
+
202
+ ---
203
+
204
+ ## Installation
205
+
206
+ Install the SDK from PyPI:
207
+
208
+ ```sh
209
+ pip install zscaler-sdk-python
210
+ ```
211
+
212
+ Or install from source (e.g., for development):
213
+
214
+ ```sh
215
+ pip install -e /path/to/oneapi-sdk/python
216
+ ```
217
+
218
+ ---
219
+
220
+ ## Building the SDK
221
+
222
+ In most cases, you won't need to build the SDK from source. If you want to build it yourself:
223
+
224
+ 1. Clone the repository
225
+ 2. Navigate to the `python` directory
226
+ 3. Run `python -m build` (requires the `build` package: `pip install build`)
227
+ 4. Install the built package: `pip install dist/zssdk_python-*.whl` or `pip install dist/zssdk_python-*.tar.gz`
228
+
229
+ ---
230
+
231
+ ## Getting Started
232
+
233
+ ### Authentication
234
+
235
+ The SDK uses OAuth2 via [Zscaler Identity (Zidentity)](https://help.zscaler.com/zidentity/what-zidentity). You must have an API Client created in the [ZIdentity platform](https://help.zscaler.com/zidentity/about-api-clients).
236
+
237
+ #### OneAPI (API Client Scope)
238
+
239
+ OneAPI resources are automatically created within the ZIdentity Admin UI based on the RBAC roles applicable to APIs within the various products. For example, in ZIA, navigate to **Administration → Role Management** and select **Add API Role**. Once this role has been saved, return to the ZIdentity Admin UI and from the **Integration** menu select **API Resources**. Click the **View** icon to the right of Zscaler APIs and under the ZIA dropdown you will see the newly created role. In the event a newly created role is not seen in the ZIdentity Admin UI, a **Sync Now** button is provided in the API Resources menu which initiates an on-demand sync of newly created roles.
240
+
241
+ **Required parameters:**
242
+
243
+ - **vanity_domain** — Your organization's vanity domain (e.g., `acme`). Use only the vanity part; full domains like `acme.zslogin.net` are not allowed. Refers to the domain used by your organization: `https://<vanity_domain>.zslogin.net/oauth2/v1/token`.
244
+ - **client_id** — Your Zidentity API Client ID
245
+ - **client_secret** — Your API Client secret
246
+ - **cloud** — (Optional) Omit for production. Use only when authenticating to a non-production environment such as `alpha` or `beta` (test-based tenants).
247
+
248
+ > **Caution:** Do not hard-code credentials. Use environment variables or the configuration file instead.
249
+
250
+ ### Basic Usage
251
+
252
+ Create a `Session` and access services as attributes. The SDK dynamically provides service resources when you access them.
253
+
254
+ ```python
255
+ import os
256
+ from zssdk import Session
257
+
258
+ # Create a session using environment variables (omit cloud for production)
259
+ session = Session(
260
+ cloud=os.getenv("ZSCALER_CLOUD"), # Optional: only for alpha/beta
261
+ vanity_domain=os.getenv("ZSCALER_VANITY_DOMAIN"),
262
+ client_id=os.getenv("ZSCALER_CLIENT_ID"),
263
+ client_secret=os.getenv("ZSCALER_CLIENT_SECRET"),
264
+ )
265
+
266
+ # Access ZIA and list VPN credentials
267
+ zia = session.zia
268
+ for cred in zia.vpn_credentials.all().limit(10):
269
+ print(cred.fqdn, cred.id)
270
+
271
+ # Access ZID and list user profiles
272
+ zid = session.zid
273
+ for user in zid.user_profiles.all().limit(5):
274
+ print(user.login_name, user.display_name)
275
+ ```
276
+
277
+ **Using the default session:** You can call `setup_default_session(**kwargs)` once to configure a shared session, then use `get_default_session()` anywhere. The `zssdk.client()` helper returns a low-level client from the default session.
278
+
279
+ ---
280
+
281
+ ## Configuration
282
+
283
+ ### Configuration File
284
+
285
+ Create a configuration file at `~/.zscaler/config`. The file uses INI format with named profiles (you can also use `config.ini` and pass `config_file="/path/to/config.ini"` to `Session`):
286
+
287
+ ```ini
288
+ [default]
289
+ vanity_domain = your_vanity_domain
290
+ client_id = your_client_id
291
+ client_secret = your_client_secret
292
+
293
+ [beta]
294
+ cloud = beta
295
+ vanity_domain = your_vanity_domain
296
+ client_id = your_beta_client_id
297
+ client_secret = your_beta_client_secret
298
+ ```
299
+
300
+ Use a profile by name:
301
+
302
+ ```python
303
+ session = Session(profile_name="beta")
304
+ ```
305
+
306
+ For multi-product setups with different clouds, define separate profiles and pass `profile_name` when creating the session for each product.
307
+
308
+ ### Environment Variables
309
+
310
+ **Credential and cloud settings** (prefix `ZSCALER_`):
311
+
312
+ | Variable | Description |
313
+ |--------------------------|----------------------------------------------------------|
314
+ | `ZSCALER_CLOUD` | Non-production environment only (e.g., `alpha`, `beta`); omit for production |
315
+ | `ZSCALER_VANITY_DOMAIN` | Your organization's vanity domain |
316
+ | `ZSCALER_CLIENT_ID` | OAuth2 Client ID |
317
+ | `ZSCALER_CLIENT_SECRET` | OAuth2 Client Secret |
318
+ | `ZSCALER_PRIVATE_KEY` | Private key string (for JWT Bearer auth) |
319
+ | `ZSCALER_CERT_FILE_PATH` | Path to private key file (for certificate-based auth) |
320
+ | `ZSCALER_PROFILE` | Default profile name (default: `default`) |
321
+
322
+ **SDK-level settings** (prefix `ZSSDK_`), defined in `zssdk.zscore.configprovider`:
323
+
324
+ | Variable | Description |
325
+ |--------------------------|----------------------------------------------------------|
326
+ | `ZSSDK_API_VERSION` | API version (default: `v1`) |
327
+ | `ZSSDK_USE_FIPS_ENDPOINT`| Use FIPS endpoints (`true` / `false`) |
328
+ | `ZSSDK_LOG_ENABLED` | Enable SDK logging (`true` / `false`) |
329
+ | `ZSSDK_LOG_VERBOSE` | Verbose logging (`true` / `false`) |
330
+ | `ZSSDK_LOG_TO_FILE` | Log to file (`true` / `false`) |
331
+ | `ZSSDK_LOG_FILE_PATH` | Log file path (default: `zssdk.log`) |
332
+ | `ZSSDK_LOG_FORMAT` | Log format: `basic`, `json`, or `custom` (see [Logging](#logging)) |
333
+
334
+ ### Constructor Parameters
335
+
336
+ You can pass credentials and settings directly to `Session`:
337
+
338
+ ```python
339
+ session = Session(
340
+ vanity_domain="acme",
341
+ client_id="your_client_id",
342
+ client_secret="your_client_secret",
343
+ profile_name="beta", # Use config file profile
344
+ config_file="/path/to/config", # Custom config path
345
+ )
346
+ ```
347
+
348
+ For JWT Bearer (client assertion) authentication:
349
+
350
+ ```python
351
+ session = Session(
352
+ vanity_domain="acme",
353
+ client_id="your_client_id",
354
+ cert_file_path="/path/to/private_key.pem", # Or private_key="<key string>"
355
+ )
356
+ ```
357
+
358
+ ### Configuration Precedence
359
+
360
+ Configuration is resolved in the following order (highest to lowest):
361
+
362
+ 1. Constructor arguments
363
+ 2. Instance variables set via `session.set_config_variable()`
364
+ 3. Environment variables
365
+ 4. Configuration file (profile)
366
+ 5. Default values
367
+
368
+ ### User-Agent and Custom Headers
369
+
370
+ The SDK sends a `User-Agent` header with each request in the format: `oneapi-sdk/<version> python/<py_version> <os>/<os_version>`. You can append custom text via the `Config` object:
371
+
372
+ ```python
373
+ from zssdk.zscore.config import Config
374
+
375
+ config = Config(user_agent_extra="my-app/1.0")
376
+ session = Session(config=config, profile_name="beta")
377
+ # User-Agent will be: oneapi-sdk/<version> python/<version> <os>/<release> my-app/1.0
378
+ ```
379
+
380
+ ---
381
+
382
+ ## API Layers
383
+
384
+ The SDK exposes two ways to interact with Zscaler APIs.
385
+
386
+ ### Resource Layer (Recommended)
387
+
388
+ The resource layer provides a Pythonic, object-oriented interface. Access services as session attributes and work with resources as objects.
389
+
390
+ **Creating and managing a resource:**
391
+
392
+ ```python
393
+ import zssdk
394
+
395
+ session = zssdk.Session(profile_name="beta")
396
+ zia = session.zia
397
+
398
+ # Create a new VPN credential
399
+ cred = zia.VpnCredential()
400
+ cred.type = "UFQDN"
401
+ cred.fqdn = "office@example.zslogin.net"
402
+ cred.pre_shared_key = "somekey"
403
+ cred.create()
404
+ print(f"Created credential with ID: {cred.id}")
405
+
406
+ # Load an existing resource by ID
407
+ loaded = zia.VpnCredential(id=cred.id)
408
+ loaded.load()
409
+
410
+ # Update
411
+ loaded.pre_shared_key = "newkey"
412
+ loaded.update()
413
+
414
+ # Delete
415
+ cred.delete()
416
+ ```
417
+
418
+ **Working with collections:**
419
+
420
+ ```python
421
+ # List all (iterates over paginated results)
422
+ for item in zia.vpn_credentials.all():
423
+ print(item.fqdn)
424
+
425
+ # Apply server-side filters
426
+ for item in zia.vpn_credentials.all().filter(type="UFQDN"):
427
+ print(item.fqdn)
428
+
429
+ # Limit results
430
+ for item in zia.vpn_credentials.all().limit(20):
431
+ print(item.fqdn)
432
+
433
+ # Control page size for performance tuning
434
+ for item in zia.vpn_credentials.all().page_size(50).limit(100):
435
+ print(item.fqdn)
436
+
437
+ # Client-side filtering with JMESPath (see Collections and Pagination for more examples)
438
+ for item in zia.vpn_credentials.all().search("[?type=='UFQDN']"):
439
+ print(item.fqdn)
440
+
441
+ # Iterate by page
442
+ for page in zia.vpn_credentials.all().pages():
443
+ for item in page:
444
+ print(item.fqdn)
445
+ ```
446
+
447
+ **ZID (Zscaler Identity) example:**
448
+
449
+ ```python
450
+ zid = session.zid
451
+
452
+ # Create user profile
453
+ user = zid.UserProfile()
454
+ user.login_name = "john.doe@example.com"
455
+ user.display_name = "John Doe"
456
+ user.primary_email = "john.doe@example.com"
457
+ user.status = True
458
+ user.create()
459
+
460
+ # List groups
461
+ for group in zid.groups.all().limit(10):
462
+ print(group.name)
463
+ ```
464
+
465
+ ### Service Client Layer
466
+
467
+ For lower-level access, you can obtain a raw service client via `session.client("zia")`. This returns a low-level client whose methods map directly to API operations. For typical usage, prefer the resource layer above. Use `session.get_available_services()` to list available service names (`zia`, `zid`, `zcc`, `zpa`, `zdx`, `ztw`) and `session.get_available_resources()` for resource-style service names.
468
+
469
+ ---
470
+
471
+ ## Supported Products
472
+
473
+ | Product | Service Name | Description |
474
+ |----------------------------|--------------|--------------------------------------------------|
475
+ | Zscaler Internet Access | `zia` | ZIA administration and policy management |
476
+ | Zscaler Identity | `zid` | User, group, and API client management |
477
+ | Zscaler Client Connector | `zcc` | Client Connector administration |
478
+ | Zscaler Private Access | `zpa` | ZPA configuration and policies |
479
+ | Zscaler Digital Experience | `zdx` | ZDX monitoring and analytics |
480
+ | Zscaler Cloud & Branch Connector | `ztw` | Cloud & Branch Connector management |
481
+
482
+ ---
483
+
484
+ ## ZPA: customer_id Requirement
485
+
486
+ When interacting with **Zscaler Private Access (ZPA)** endpoints, you must provide `customer_id` in addition to the standard authentication parameters. The `customer_id` is the ZPA tenant ID, found under **Configuration & Control → Public API → API Keys** in the ZPA Admin Portal.
487
+
488
+ For ZPA resources, pass `customer_id` as a parameter to each operation. Every ZPA API call includes `customer_id` in the request path (e.g., `/customers/{customerId}/...`), so you must supply it when creating, updating, or querying ZPA resources.
489
+
490
+ `microtenant_id` is optional and only required when using ZPA with Microtenant; pass `0` for the default microtenant.
491
+
492
+ ---
493
+
494
+ ## ZIA and ZTW Context Manager
495
+
496
+ The SDK provides a context manager pattern for **ZIA** and **ZTW** that automatically activates configuration changes when exiting the block.
497
+
498
+ ### How It Works
499
+
500
+ When you use the `with` statement with `session.zia` or `session.ztw`:
501
+
502
+ 1. **Entry** — The service resource is returned; you make configuration changes within the block.
503
+ 2. **Exit** — When exiting the context (successfully or via exception), the SDK runs a finalize workflow that activates staged changes.
504
+
505
+ ### Activation Process
506
+
507
+ - **ZIA** — The finalize workflow calls the activation status endpoint. If the status is `PENDING`, it deauthenticates the session, which triggers activation of all staged configuration changes.
508
+ - **ZTW** — The finalize workflow fetches the status; if `PENDING`, it explicitly calls the Activate endpoint.
509
+
510
+ ### Example
511
+
512
+ ```python
513
+ import zssdk
514
+
515
+ session = zssdk.Session(profile_name="beta")
516
+
517
+ # ZIA: context manager activates changes on exit
518
+ with session.zia as zia:
519
+ role = zia.AdminRole()
520
+ role.name = "New API Role"
521
+ role.description = "Role created via API"
522
+ role.create()
523
+ # All staged ZIA changes are activated here
524
+
525
+ # ZTW: context manager activates changes on exit
526
+ with session.ztw as ztw:
527
+ group = ztw.IpDestinationGroup()
528
+ group.name = "New IP Group"
529
+ group.description = "IP group via API"
530
+ group.create()
531
+ # All staged ZTW changes are activated here
532
+ ```
533
+
534
+ ### Benefits
535
+
536
+ - **Automatic activation** — No need to call activation endpoints manually.
537
+ - **Deterministic behavior** — Exiting the context always triggers the activation workflow.
538
+ - **Error handling** — Even if an exception occurs, the context manager runs the finalize logic on normal exit (exceptions are not suppressed).
539
+
540
+ ---
541
+
542
+ ## Collections and Pagination
543
+
544
+ Collections support the following methods:
545
+
546
+ | Method | Description |
547
+ |-----------------|-------------------------------------------------------------------|
548
+ | `.all()` | Returns an iterable over all resources (handles pagination) |
549
+ | `.filter(**kwargs)` | Applies server-side filters (snake_case or camelCase) |
550
+ | `.limit(n)` | Stops after yielding `n` resources |
551
+ | `.page_size(n)` | Sets the number of resources fetched per API request |
552
+ | `.search(expr)` | Client-side JMESPath filtering on each page |
553
+ | `.pages()` | Yields pages (lists) of resources instead of individual items |
554
+
555
+ Example with combined options:
556
+
557
+ ```python
558
+ # Server-side filter, custom page size, limit total results
559
+ for cred in (
560
+ zia.vpn_credentials.all()
561
+ .filter(type="UFQDN")
562
+ .page_size(25)
563
+ .limit(100)
564
+ ):
565
+ print(cred.fqdn)
566
+ ```
567
+
568
+ ### Client-side filtering with JMESPath
569
+
570
+ The `.search(expr)` method applies a [JMESPath](https://jmespath.org/) expression on each page of results. Use it when you need filtering that the API does not support server-side. The expression is applied to the items array, so you write it relative to each item.
571
+
572
+ ```python
573
+ # Exact match on a field
574
+ for user in zia.admin_users.search("[?name == 'SDWAN-SilverPeak']"):
575
+ print(user.name)
576
+
577
+ # Multiple values with OR
578
+ for user in zia.admin_users.search("[?name == 'SDWAN-SilverPeak' || name == 'SDWAN-VeloCloud']"):
579
+ print(user.name)
580
+
581
+ # Substring match using contains()
582
+ for user in zia.admin_users.search("[?contains(name, 'SilverPeak')]"):
583
+ print(user.name)
584
+
585
+ # Chain with server-side filter (filter first to reduce data, then search)
586
+ for user in zia.admin_users.filter(search="SDWAN").search("[?contains(name, 'SilverPeak')]"):
587
+ print(user.name)
588
+
589
+ # Chain with limit and page_size
590
+ for user in zia.admin_users.search("[?name == 'SDWAN-SilverPeak']").limit(10).page_size(50):
591
+ print(user.name)
592
+ ```
593
+
594
+ ---
595
+
596
+ ## Error Handling
597
+
598
+ The SDK raises structured exceptions:
599
+
600
+ | Exception | Base | When it occurs |
601
+ |----------------------|---------------|----------------------------------------------------|
602
+ | `OneApiError` | — | Base SDK error |
603
+ | `ZsResourceError` | `OneApiError` | Resource-level errors; includes `resource_name`, `action_name` |
604
+ | `BadRequestException`| `ZsResourceError` | API returns 400 Bad Request |
605
+ | `NotFoundException` | `ZsResourceError` | API returns 404 Not Found |
606
+
607
+ Additional resource-specific exceptions (e.g., `ConflictException`) may be defined in `zssdk.zsresource.exceptions`.
608
+
609
+ **Example:**
610
+
611
+ ```python
612
+ from zssdk.zscore import OneApiError
613
+ from zssdk.zsresource import ZsResourceError
614
+ from zssdk.zsresource.exceptions import BadRequestException
615
+
616
+ try:
617
+ cred = zia.VpnCredential()
618
+ cred.fqdn = "invalid"
619
+ cred.create()
620
+ except BadRequestException as e:
621
+ print(f"Bad request: {e}")
622
+ except ZsResourceError as e:
623
+ print(f"Resource error: {e.resource_name} / {e.action_name}: {e}")
624
+ except OneApiError as e:
625
+ print(f"SDK error: {e}")
626
+ ```
627
+
628
+ ---
629
+
630
+ ## Rate Limiting and Retry Mechanism
631
+
632
+ Each Zscaler product has its own rate limiting criteria. Product-specific limits and quotas are documented in the [Zscaler Automation Hub Rate Limiting Guide](https://automate.zscaler.com/docs/docs/api-reference-and-guides/api-reference/guides/rate-limiting).
633
+
634
+ ### Built-in Retry Mechanism
635
+
636
+ The SDK includes a built-in retry mechanism (configured in `zssdk.zscore.data._retry`) that handles rate limiting and transient failures automatically. When a retryable response or connection error occurs, the SDK:
637
+
638
+ 1. **Checks for rate limit headers** — If present, waits the specified time before retrying.
639
+ 2. **Falls back to exponential backoff** — If no header is present, uses exponential backoff (base 0.3s, growth factor 2).
640
+ 3. **Caps wait time** — Maximum wait is 300 seconds per retry.
641
+ 4. **Limits attempts** — Retries up to 3 times (`max_attempts`) before raising the final exception.
642
+
643
+ The retry logic is applied per request across all supported products (ZIA, ZID, ZCC, ZPA, ZDX, ZTW).
644
+
645
+ ### HTTP Status Codes That Trigger Retries
646
+
647
+ The SDK retries requests when it receives one of the following responses:
648
+
649
+ | Status Code | Meaning | Policy Name |
650
+ |-------------|-------------------------|--------------------|
651
+ | `429` | Too Many Requests | TooManyRequests, Throttling |
652
+ | `500` | Internal Server Error | ServerError (with TransientFailure) |
653
+ | `502` | Bad Gateway | BadGateway |
654
+ | `503` | Service Unavailable | ServiceUnavailable |
655
+ | `504` | Gateway Timeout | GatewayTimeout |
656
+
657
+ Connection errors (e.g., `ConnectionError`, `ReadTimeoutError`) also trigger retries.
658
+
659
+ ### Retry-After and Rate Limit Headers
660
+
661
+ When rate limiting is enabled (default), the SDK uses response headers to determine how long to wait before retrying. Headers are checked in this order:
662
+
663
+ 1. **`Retry-After`** or **`retry-after`** — Standard HTTP headers. Supports values like `9` (seconds) or `9s`.
664
+ 2. **`x-ratelimit-reset`**, **`X-RateLimit-Reset`**, **`RateLimit-Reset`**, **`X-Rate-Limit-Retry-After-Seconds`** — Product-specific headers indicating seconds until the rate limit resets.
665
+
666
+ If no rate limit header is present, the SDK falls back to **exponential backoff** (base 0.3s, growth factor 2).
667
+
668
+ ---
669
+
670
+ ## Logging
671
+
672
+ SDK logging is controlled by environment variables (see [Environment Variables](#environment-variables)) or a `LoggerConfig` object.
673
+
674
+ ### Log format (`ZSSDK_LOG_FORMAT`)
675
+
676
+ The `logging_format` setting supports three values:
677
+
678
+ | Format | Description |
679
+ |-----------|-----------------------------------------------------------------------------|
680
+ | `basic` | Human-readable lines: `%(asctime)s - %(name)s - %(module)s - %(levelname)s - %(message)s`. Default format. |
681
+ | `json` | Structured JSON output, one record per line, suitable for log aggregators (e.g., Grafana Loki). |
682
+ | `custom` | Use your own `logging.Formatter` instance. **Only available programmatically** via `LoggerConfig`; requires passing `custom_formatter` and cannot be set via environment variables. |
683
+
684
+ **Environment variables example:**
685
+
686
+ ```sh
687
+ export ZSSDK_LOG_ENABLED=true
688
+ export ZSSDK_LOG_VERBOSE=false
689
+ export ZSSDK_LOG_TO_FILE=false
690
+ export ZSSDK_LOG_FILE_PATH=zssdk.log
691
+ export ZSSDK_LOG_FORMAT=basic
692
+ ```
693
+
694
+ **Programmatic configuration:**
695
+
696
+ ```python
697
+ from zssdk.zscore.config import Config, LoggerConfig
698
+
699
+ config = Config(
700
+ logger_config=LoggerConfig(
701
+ enabled=True,
702
+ verbose=False,
703
+ logging_format="json",
704
+ log_to_file=True,
705
+ log_file_path="/var/log/zssdk.log",
706
+ )
707
+ )
708
+ session = Session(config=config, profile_name="beta")
709
+ ```
710
+
711
+ **Custom format (programmatic only):**
712
+
713
+ ```python
714
+ import logging
715
+ from zssdk.zscore.config import Config, LoggerConfig
716
+
717
+ custom_formatter = logging.Formatter("%(levelname)s | %(message)s")
718
+ config = Config(
719
+ logger_config=LoggerConfig(
720
+ enabled=True,
721
+ logging_format="custom",
722
+ custom_formatter=custom_formatter,
723
+ )
724
+ )
725
+ session = Session(config=config, profile_name="beta")
726
+ ```
727
+
728
+ Sensitive fields (tokens, secrets, passwords) are redacted in log output.
729
+
730
+ ---
731
+
732
+ ## Auto-completion and IntelliSense
733
+
734
+ The SDK ships with PEP 484 [type stub](https://peps.python.org/pep-0484/) files (`.pyi`) that enable rich IDE support. Compatible editors (e.g., VS Code with Pylance, PyCharm) automatically use these stubs for:
735
+
736
+ - **Auto-completion** — As you type `session.zia.` or `cred.`, the IDE suggests available resources, methods, and properties.
737
+ - **Parameter hints** — Method signatures and parameter names appear in tooltips.
738
+ - **Docstrings** — Resource and method documentation is shown in hover tooltips.
739
+ - **Type checking** — Static type checkers (e.g., Pyright, mypy) can validate your code.
740
+
741
+ ### What You Get
742
+
743
+ | Location | Stub file(s) | Purpose |
744
+ |-----------------------|------------------------|----------------------------------------------|
745
+ | Session / services | `session.pyi` | `session.zia`, `session.zid`, etc. |
746
+ | ZIA resources | `zia_resources.pyi` | `VpnCredential`, `AdminUser`, collections |
747
+ | ZID resources | `zid_resources.pyi` | `UserProfile`, `Group`, `ApiClient` |
748
+ | ZPA, ZCC, ZDX, ZTW | `*_resources.pyi` | Product-specific resources and methods |
749
+ | Low-level clients | `*_client.pyi` | Service client method signatures |
750
+
751
+ ### Setup
752
+
753
+ No additional setup is required. The stubs are part of the installed package and are picked up automatically by IDEs that support PEP 484. Ensure your IDE's Python interpreter points to the environment where `zscaler-sdk-python` is installed.
754
+
755
+ ### Example
756
+
757
+ When you type `session.zia.` in VS Code or PyCharm, you will see completions for resources such as `VpnCredential`, `AdminUser`, `vpn_credentials`, and `admin_users`. Selecting a resource shows its available properties and methods (e.g., `create()`, `load()`, `update()`, `delete()`).
758
+
759
+ ---
760
+
761
+ ## Examples
762
+
763
+ The repository includes runnable examples under `python/examples/`:
764
+
765
+ **Zscaler Identity (ZID):**
766
+
767
+ - `user_management/` — User profile CRUD
768
+ - `group_management/` — Group management
769
+ - `api_client_management/` — API client CRUD
770
+ - `resource_server_management/` — Resource server viewing
771
+
772
+ **Zscaler Internet Access (ZIA):**
773
+
774
+ - `vpn_credentials_management/` — VPN credential management
775
+
776
+ Each example directory contains a `README.md` with usage details. Run any script with `--help` for options:
777
+
778
+ ```sh
779
+ python examples/zid/user_management/user_management.py --help
780
+ python examples/zia/vpn_credentials_management/vpn_credentials_management.py --help
781
+ ```
782
+
783
+ ---
784
+
785
+ ## Migrating from zscaler-sdk-python
786
+
787
+ If you are coming from the previous [`zscaler-sdk-python`](https://github.com/zscaler/zscaler-sdk-python) package, here is what changes.
788
+
789
+ ### Installation
790
+
791
+ ```sh
792
+ # Remove the old package
793
+ pip uninstall zscaler-sdk-python
794
+
795
+ # Install the new package
796
+ pip install zscaler-sdk-python
797
+ ```
798
+
799
+ The import name changes from `zscaler` to `zssdk`.
800
+
801
+ ### Authentication
802
+
803
+ **Before:**
804
+
805
+ ```python
806
+ from zscaler import ZscalerClient
807
+
808
+ config = {
809
+ "clientId": "...",
810
+ "clientSecret": "...",
811
+ "vanityDomain": "...",
812
+ "cloud": "beta",
813
+ }
814
+ client = ZscalerClient(config)
815
+ ```
816
+
817
+ **After:**
818
+
819
+ ```python
820
+ from zssdk import Session
821
+
822
+ session = Session(
823
+ client_id="...",
824
+ client_secret="...",
825
+ vanity_domain="...",
826
+ cloud="beta",
827
+ )
828
+ ```
829
+
830
+ Key differences:
831
+ - Constructor uses Python keyword arguments (`snake_case`) instead of a config dictionary (`camelCase`).
832
+ - Configuration can also come from `~/.zscaler/config` (INI format) or environment variables. See [Configuration](#configuration).
833
+
834
+ ### Working with resources
835
+
836
+ **Before** — dict access, error tuples:
837
+
838
+ ```python
839
+ with ZscalerClient(config) as client:
840
+ role, resp, err = client.zia.admin_roles.get_role(role_id="12345")
841
+ if err:
842
+ print(f"Error: {err}")
843
+ else:
844
+ print(role["name"])
845
+ ```
846
+
847
+ **After** — resource objects, exceptions:
848
+
849
+ ```python
850
+ from zssdk.zsresource.exceptions import NotFoundException
851
+
852
+ try:
853
+ role = session.zia.AdminRole(id=12345)
854
+ role.load()
855
+ print(role.name)
856
+ except NotFoundException:
857
+ print("Role not found")
858
+ ```
859
+
860
+ ### Pagination
861
+
862
+ **Before** — manual loop:
863
+
864
+ ```python
865
+ groups, resp, err = client.zia.user_management.list_groups()
866
+ while resp.has_next():
867
+ more, resp, err = resp.next()
868
+ if err:
869
+ break
870
+ groups.extend(more)
871
+ ```
872
+
873
+ **After** — iterator with chaining:
874
+
875
+ ```python
876
+ # All groups, paginated automatically
877
+ for group in session.zia.admin_roles.all():
878
+ print(group.name)
879
+
880
+ # With server-side filter and limit
881
+ for group in session.zia.admin_roles.filter(search="API").limit(50):
882
+ print(group.name)
883
+ ```
884
+
885
+ ### Configuration
886
+
887
+ **Before** — YAML file at `~/.zscaler/zscaler.yaml`:
888
+
889
+ ```yaml
890
+ zscaler:
891
+ client:
892
+ clientId: "..."
893
+ clientSecret: "..."
894
+ vanityDomain: "..."
895
+ ```
896
+
897
+ **After** — INI file at `~/.zscaler/config`:
898
+
899
+ ```ini
900
+ [default]
901
+ vanity_domain = ...
902
+ client_id = ...
903
+ client_secret = ...
904
+ ```
905
+
906
+ ### Quick reference
907
+
908
+ | What | `zscaler-sdk-python` | `zscaler-sdk-python` |
909
+ |---|---|---|
910
+ | Import | `from zscaler import ZscalerClient` | `from zssdk import Session` |
911
+ | Access field | `user["name"]` | `user.name` |
912
+ | Create resource | `client.zia.admin_roles.add_role(name="X")` | `role = session.zia.AdminRole(); role.name = "X"; role.create()` |
913
+ | Delete resource | `client.zia.admin_roles.delete_role(role_id="123")` | `role = session.zia.AdminRole(id=123); role.delete()` |
914
+ | Handle error | `result, resp, err = ...; if err: ...` | `try: ... except NotFoundException: ...` |
915
+ | Paginate | `while resp.has_next(): resp.next()` | `for item in collection.all():` |
916
+ | Filter | `query_params={"search": "X"}` | `.filter(search="X")` or `.search("[?name=='X']")` |
917
+ | Config file | `~/.zscaler/zscaler.yaml` | `~/.zscaler/config` (INI) |
918
+
919
+ ---
920
+
921
+ ## Contributing
922
+
923
+ Contributions are welcome. Please follow the project's coding standards and submit pull requests via the repository's normal workflow.
924
+
925
+ ---
926
+
927
+ ## Need Help?
928
+
929
+ - [Zscaler Community](https://community.zscaler.com/)
930
+ - [OneAPI Documentation](https://help.zscaler.com/oneapi/understanding-oneapi)
931
+ - [Zscaler Identity API](https://help.zscaler.com/zidentity/getting-started-zidentity-api)
932
+ - [ZIA API](https://help.zscaler.com/zia/getting-started-zia-api)
933
+ - [Automation Docs](http://automation.zsapidocs.net/docs/)