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.
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/PKG-INFO +1 -1
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/pyproject.toml +2 -2
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/constants.py +1 -1
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/policies.py +13 -4
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/LICENSE.md +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/README.md +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/utils.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/client.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/devices.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcc/secrets.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/activation.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/admin_and_role_management.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/client.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/ecgroups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/locations.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/provisioning.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/admin.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/filters.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zdx/zdx_client.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/admin_and_role_management.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/client.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/cloud_apps.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/cloudappcontrol.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/dlp.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/errors.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/firewall.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/isolation_profile.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/labels.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/pac_files.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/security.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/ssl_inspection.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/traffic.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/users.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/web_dlp.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/README.md +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/__init__.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/authdomains.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/client.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/connectors.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/errors.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/inspection.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/isolation.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/microtenants.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/privileged_remote_access.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/service_edges.py +0 -0
- {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
|
[tool.poetry]
|
|
2
2
|
name = "zscaler-sdk-python"
|
|
3
|
-
version = "0.10.
|
|
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
|
|
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"
|
|
@@ -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
|
-
|
|
110
|
-
|
|
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)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zcon/admin_and_role_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/admin_and_role_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zia/authentication_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/app_segments_inspection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/cloud_connector_groups.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.10.5 → zscaler_sdk_python-0.10.7}/zscaler/zpa/privileged_remote_access.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|