zscaler-sdk-python 0.10.5__tar.gz → 0.10.7__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 (100) hide show
  1. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/PKG-INFO +1 -1
  2. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/pyproject.toml +2 -2
  3. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/__init__.py +1 -1
  4. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/constants.py +1 -1
  5. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/policies.py +13 -4
  6. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/LICENSE.md +0 -0
  7. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/README.md +0 -0
  8. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/__init__.py +0 -0
  9. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/cache.py +0 -0
  10. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/no_op_cache.py +0 -0
  11. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/zscaler_cache.py +0 -0
  12. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/__init__.py +0 -0
  13. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/error.py +0 -0
  14. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/http_error.py +0 -0
  15. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/zscaler_api_error.py +0 -0
  16. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/exceptions/__init__.py +0 -0
  17. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/exceptions/exceptions.py +0 -0
  18. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/logger.py +0 -0
  19. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/ratelimiter/__init__.py +0 -0
  20. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/ratelimiter/ratelimiter.py +0 -0
  21. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/user_agent.py +0 -0
  22. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/utils.py +0 -0
  23. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/__init__.py +0 -0
  24. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/client.py +0 -0
  25. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/devices.py +0 -0
  26. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/secrets.py +0 -0
  27. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/__init__.py +0 -0
  28. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/activation.py +0 -0
  29. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/admin_and_role_management.py +0 -0
  30. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/client.py +0 -0
  31. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/ecgroups.py +0 -0
  32. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/locations.py +0 -0
  33. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/provisioning.py +0 -0
  34. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/__init__.py +0 -0
  35. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/admin.py +0 -0
  36. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/alerts.py +0 -0
  37. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/apps.py +0 -0
  38. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/devices.py +0 -0
  39. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/filters.py +0 -0
  40. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/inventory.py +0 -0
  41. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/troubleshooting.py +0 -0
  42. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/users.py +0 -0
  43. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/zdx_client.py +0 -0
  44. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/__init__.py +0 -0
  45. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/activate.py +0 -0
  46. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/admin_and_role_management.py +0 -0
  47. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/apptotal.py +0 -0
  48. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/audit_logs.py +0 -0
  49. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/authentication_settings.py +0 -0
  50. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/client.py +0 -0
  51. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/cloud_apps.py +0 -0
  52. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/cloudappcontrol.py +0 -0
  53. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/device_management.py +0 -0
  54. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/dlp.py +0 -0
  55. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/errors.py +0 -0
  56. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/firewall.py +0 -0
  57. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/forwarding_control.py +0 -0
  58. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/isolation_profile.py +0 -0
  59. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/labels.py +0 -0
  60. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/locations.py +0 -0
  61. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/pac_files.py +0 -0
  62. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/sandbox.py +0 -0
  63. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/security.py +0 -0
  64. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/ssl_inspection.py +0 -0
  65. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/traffic.py +0 -0
  66. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/url_categories.py +0 -0
  67. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/url_filtering.py +0 -0
  68. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/users.py +0 -0
  69. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/web_dlp.py +0 -0
  70. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/workload_groups.py +0 -0
  71. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/zpa_gateway.py +0 -0
  72. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/README.md +0 -0
  73. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/__init__.py +0 -0
  74. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments.py +0 -0
  75. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments_inspection.py +0 -0
  76. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments_pra.py +0 -0
  77. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/authdomains.py +0 -0
  78. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/certificates.py +0 -0
  79. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/client.py +0 -0
  80. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/cloud_connector_groups.py +0 -0
  81. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/connectors.py +0 -0
  82. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/emergency_access.py +0 -0
  83. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/errors.py +0 -0
  84. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/idp.py +0 -0
  85. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/inspection.py +0 -0
  86. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/isolation.py +0 -0
  87. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/lss.py +0 -0
  88. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/machine_groups.py +0 -0
  89. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/microtenants.py +0 -0
  90. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/posture_profiles.py +0 -0
  91. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/privileged_remote_access.py +0 -0
  92. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/provisioning.py +0 -0
  93. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/saml_attributes.py +0 -0
  94. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/scim_attributes.py +0 -0
  95. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/scim_groups.py +0 -0
  96. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/segment_groups.py +0 -0
  97. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/server_groups.py +0 -0
  98. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/servers.py +0 -0
  99. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/service_edges.py +0 -0
  100. {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/trusted_networks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zscaler-sdk-python
3
- Version: 0.10.5
3
+ Version: 0.10.7
4
4
  Summary: Official Python SDK for the Zscaler Products (Beta)
5
5
  Home-page: https://github.com/zscaler/zscaler-sdk-python
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zscaler-sdk-python"
3
- version = "0.10.5"
3
+ version = "0.10.7"
4
4
  description = "Official Python SDK for the Zscaler Products (Beta)"
5
5
  authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
6
6
  license = "MIT"
@@ -53,7 +53,7 @@ cryptography = ">=43.0.0"
53
53
  okta = ">=2.9.7"
54
54
  jinja2 = ">=3.1.6"
55
55
 
56
- [tool.poetry.dev-dependencies]
56
+ [tool.poetry.group.dev.dependencies]
57
57
  black = ">=24.3.0"
58
58
  pytest = ">=8.3.1"
59
59
  pytest-asyncio = "^0.25.3"
@@ -29,7 +29,7 @@ __license__ = "MIT"
29
29
  __contributors__ = [
30
30
  "William Guilherme",
31
31
  ]
32
- __version__ = "0.10.5"
32
+ __version__ = "0.10.7"
33
33
 
34
34
  from zscaler.zdx import ZDXClientHelper # noqa
35
35
  from zscaler.zia import ZIAClientHelper # noqa
@@ -14,7 +14,7 @@ ZPA_BASE_URLS = {
14
14
 
15
15
  DEV_AUTH_URL = "https://authn1.dev.zpath.net/authn/v1/oauth/token"
16
16
 
17
- RETRYABLE_STATUS_CODES = {409, 412, 429, 500, 502, 503, 504}
17
+ RETRYABLE_STATUS_CODES = {408, 409, 412, 429, 500, 502, 503, 504}
18
18
  MAX_RETRIES = 5
19
19
  BACKOFF_FACTOR = 1
20
20
  BACKOFF_BASE_DURATION = 2
@@ -75,6 +75,8 @@ class PolicySetsAPI:
75
75
  "SCIM": [],
76
76
  "SCIM_GROUP": [],
77
77
  "COUNTRY_CODE": [],
78
+ "RISK_FACTOR_TYPE":[],
79
+ "CHROME_ENTERPRISE":[],
78
80
  }
79
81
 
80
82
  operators_for_types = {} # Dictionary to store specific operators for each object type
@@ -105,9 +107,9 @@ class PolicySetsAPI:
105
107
  object_types_to_operands[object_type].append(operand)
106
108
 
107
109
  elif isinstance(condition, dict):
108
- if "operator" in condition:
109
- operators_for_types["default"] = condition["operator"]
110
- continue # Skip to the next condition after setting the operator
110
+ # if "operator" in condition:
111
+ # operators_for_types["default"] = condition["operator"]
112
+ # continue # Skip to the next condition after setting the operator
111
113
 
112
114
  condition_template = {}
113
115
  for key in ["id", "negated", "operator"]:
@@ -184,7 +186,7 @@ class PolicySetsAPI:
184
186
  ]
185
187
  }
186
188
  )
187
- elif object_type in ["posture", "trusted_network", "country_code", "platform"]:
189
+ elif object_type in ["posture", "trusted_network", "country_code", "platform", "risk_factor_type", "chrome_enterprise"]:
188
190
  # These types use "entryValues" with "lhs" as unique ID and "rhs" as "true"/"false"
189
191
  template.append(
190
192
  {"operands": [{"objectType": object_type.upper(), "entryValues": [{"lhs": values[0], "rhs": values[1]}]}]}
@@ -481,6 +483,13 @@ class PolicySetsAPI:
481
483
 
482
484
  add_id_groups(self.reformat_params, kwargs, payload)
483
485
 
486
+ # Force removal if user gave an empty list.
487
+ # (Ensures we don't leave behind the old 'appConnectorGroups' from current_rule.)
488
+ if not app_connector_group_ids:
489
+ payload["appConnectorGroups"] = []
490
+ if not app_server_group_ids:
491
+ payload["appServerGroups"] = []
492
+
484
493
  for key, value in kwargs.items():
485
494
  if key == "conditions":
486
495
  payload["conditions"] = self._create_conditions_v1(value)