zscaler-sdk-python 0.6.0__tar.gz → 0.6.2__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.6.0 → zscaler_sdk_python-0.6.2}/PKG-INFO +3 -3
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/pyproject.toml +7 -7
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/constants.py +1 -1
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/__init__.py +4 -5
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/isolation_profile.py +1 -2
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/locations.py +60 -8
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/workload_groups.py +30 -4
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/__init__.py +2 -2
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/client.py +1 -1
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/isolation.py +1 -1
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/LICENSE.md +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/README.md +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/utils.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/__init__.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/admin.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/alerts.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/apps.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/devices.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/filters.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/inventory.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/troubleshooting.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/users.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zdx/zdx_client.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/admin_and_role_management.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/client.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/cloud_apps.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/dlp.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/errors.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/firewall.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/labels.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/security.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/ssl_inspection.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/traffic.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/users.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/web_dlp.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/README.md +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/app_segments.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/authdomains.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/connectors.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/errors.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/inspection.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/microtenants.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/policies.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/privileged_remote_access.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/service_edges.py +0 -0
- {zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/trusted_networks.py +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zscaler-sdk-python
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.2
|
|
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
|
|
7
7
|
Keywords: zscaler,sdk,zpa,zia,zdx,zcc,zcon
|
|
8
8
|
Author: Zscaler, Inc.
|
|
9
9
|
Author-email: devrel@zscaler.com
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.9,<4.0
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
21
21
|
Classifier: Topic :: Security
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Provides-Extra: dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "zscaler-sdk-python"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.2"
|
|
4
4
|
description = "Official Python SDK for the Zscaler Products (Beta)"
|
|
5
5
|
authors = ["Zscaler, Inc. <devrel@zscaler.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -28,7 +28,7 @@ packages = [
|
|
|
28
28
|
"Bug Tracker" = "https://github.com/zscaler/zscaler-sdk-python/issues"
|
|
29
29
|
|
|
30
30
|
[tool.poetry.dependencies]
|
|
31
|
-
python = ">=3.
|
|
31
|
+
python = ">=3.9,<4.0"
|
|
32
32
|
arrow = "*"
|
|
33
33
|
certifi = ">=2024.2.2"
|
|
34
34
|
charset-normalizer = "*"
|
|
@@ -55,15 +55,15 @@ okta = ">=2.9.7"
|
|
|
55
55
|
|
|
56
56
|
[tool.poetry.dev-dependencies]
|
|
57
57
|
black = ">=24.3.0"
|
|
58
|
-
pytest = ">=8.2.
|
|
59
|
-
pytest-asyncio = "
|
|
58
|
+
pytest = ">=8.2.2"
|
|
59
|
+
pytest-asyncio = "^0.23.8"
|
|
60
60
|
pytest-mock = "*"
|
|
61
|
-
pytest-recording = "
|
|
61
|
+
pytest-recording = "^0.13.2"
|
|
62
62
|
pytest-cov = "*"
|
|
63
|
-
pyfakefs = "
|
|
63
|
+
pyfakefs = "^5.6.0"
|
|
64
64
|
isort = "*"
|
|
65
65
|
wheel = "*"
|
|
66
|
-
sphinx = "
|
|
66
|
+
sphinx = "^7.4.6"
|
|
67
67
|
sphinx-autobuild = "*"
|
|
68
68
|
sphinx_rtd_theme = "*"
|
|
69
69
|
|
|
@@ -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, 429, 500, 502, 503, 504}
|
|
17
|
+
RETRYABLE_STATUS_CODES = {409, 412, 429, 500, 502, 503, 504}
|
|
18
18
|
MAX_RETRIES = 5
|
|
19
19
|
BACKOFF_FACTOR = 1
|
|
20
20
|
BACKOFF_BASE_DURATION = 2
|
|
@@ -12,6 +12,7 @@ from box import Box, BoxList
|
|
|
12
12
|
from zscaler import __version__
|
|
13
13
|
from zscaler.cache.no_op_cache import NoOpCache
|
|
14
14
|
from zscaler.cache.zscaler_cache import ZscalerCache
|
|
15
|
+
from zscaler.constants import MAX_RETRIES
|
|
15
16
|
from zscaler.errors.http_error import HTTPError, ZscalerAPIError
|
|
16
17
|
from zscaler.exceptions.exceptions import HTTPException, ZscalerAPIException
|
|
17
18
|
from zscaler.logger import setup_logging
|
|
@@ -118,7 +119,7 @@ class ZIAClientHelper(ZIAClient):
|
|
|
118
119
|
self.sandbox_token = kw.get("sandbox_token") or os.getenv(f"{self._env_base}_SANDBOX_TOKEN")
|
|
119
120
|
self.timeout = timeout
|
|
120
121
|
self.fail_safe = fail_safe
|
|
121
|
-
cache_enabled = os.environ.get("ZSCALER_CLIENT_CACHE_ENABLED", "
|
|
122
|
+
cache_enabled = os.environ.get("ZSCALER_CLIENT_CACHE_ENABLED", "false").lower() == "true"
|
|
122
123
|
if cache is None:
|
|
123
124
|
if cache_enabled:
|
|
124
125
|
ttl = int(os.environ.get("ZSCALER_CLIENT_CACHE_DEFAULT_TTL", 3600))
|
|
@@ -168,13 +169,11 @@ class ZIAClientHelper(ZIAClient):
|
|
|
168
169
|
if self.auth_details is None:
|
|
169
170
|
return True
|
|
170
171
|
now = datetime.datetime.now()
|
|
171
|
-
if self.auth_details["passwordExpiryTime"] > 0 and (
|
|
172
|
-
self.session_refreshed + datetime.timedelta(seconds=-self.session_timeout_offset) < now
|
|
173
|
-
):
|
|
172
|
+
if self.auth_details["passwordExpiryTime"] > 0 and (self.session_refreshed - self.session_timeout_offset < now):
|
|
174
173
|
return True
|
|
175
174
|
return False
|
|
176
175
|
|
|
177
|
-
@retry_with_backoff(
|
|
176
|
+
@retry_with_backoff(MAX_RETRIES)
|
|
178
177
|
def authenticate(self) -> Box:
|
|
179
178
|
"""
|
|
180
179
|
Creates a ZIA authentication session.
|
|
@@ -39,8 +39,7 @@ class IsolationProfileAPI:
|
|
|
39
39
|
>>> isolation_profiles = zia.isolation_profiles.list_isolation_profiles()
|
|
40
40
|
|
|
41
41
|
"""
|
|
42
|
-
|
|
43
|
-
return self.rest.get("browserIsolation/profiles", json=payload)
|
|
42
|
+
return self.rest.get("browserIsolation/profiles")
|
|
44
43
|
|
|
45
44
|
def get_profiles_by_name(self, name: str):
|
|
46
45
|
"""
|
|
@@ -462,7 +462,28 @@ class LocationsAPI:
|
|
|
462
462
|
"""
|
|
463
463
|
return self.rest.delete(f"locations/{location_id}").status_code
|
|
464
464
|
|
|
465
|
-
def
|
|
465
|
+
def bulk_delete_locations(self, location_ids: list, **kwargs) -> int:
|
|
466
|
+
"""
|
|
467
|
+
Deletes all specified Location Management from ZIA.
|
|
468
|
+
|
|
469
|
+
Args:
|
|
470
|
+
location_ids (list): The list of unique ids for the ZIA Locations that will be deleted.
|
|
471
|
+
|
|
472
|
+
Returns:
|
|
473
|
+
:obj:`int`: The status code for the operation.
|
|
474
|
+
|
|
475
|
+
Examples:
|
|
476
|
+
>>> zia.locations.bulk_delete_locations(['111111', '222222', '333333'])
|
|
477
|
+
|
|
478
|
+
"""
|
|
479
|
+
payload = {"ids": location_ids}
|
|
480
|
+
response = self.rest.post("locations/bulkDelete", json=payload).status_code
|
|
481
|
+
if isinstance(response, Response):
|
|
482
|
+
status_code = response.status_code
|
|
483
|
+
raise Exception(f"API call failed with status {status_code}: {response.json()}")
|
|
484
|
+
return response
|
|
485
|
+
|
|
486
|
+
def list_location_groups(self) -> BoxList:
|
|
466
487
|
"""
|
|
467
488
|
Return a list of location groups in ZIA.
|
|
468
489
|
|
|
@@ -479,8 +500,7 @@ class LocationsAPI:
|
|
|
479
500
|
Get a list of all configured location groups:
|
|
480
501
|
>>> location = zia.locations.list_location_groups()
|
|
481
502
|
"""
|
|
482
|
-
|
|
483
|
-
return self.rest.get("locations/groups", json=payload)
|
|
503
|
+
return self.rest.get("locations/groups")
|
|
484
504
|
|
|
485
505
|
def get_location_group_by_id(self, group_id: int) -> Box:
|
|
486
506
|
"""
|
|
@@ -515,9 +535,9 @@ class LocationsAPI:
|
|
|
515
535
|
>>> location = zia.locations.get_location_group_by_name("Unassigned Locations")
|
|
516
536
|
"""
|
|
517
537
|
params = {"page": page, "pageSize": page_size, "search": group_name}
|
|
518
|
-
return self.rest.get("locations/groups",
|
|
538
|
+
return self.rest.get("locations/groups", params=params)
|
|
519
539
|
|
|
520
|
-
def list_location_groups_lite(self,
|
|
540
|
+
def list_location_groups_lite(self, page: int = 1, page_size: int = 100) -> BoxList:
|
|
521
541
|
"""
|
|
522
542
|
Returns a list of location groups (lite version) by their ID where only name and ID is returned in ZIA.
|
|
523
543
|
|
|
@@ -534,8 +554,8 @@ class LocationsAPI:
|
|
|
534
554
|
Get a list of all configured location groups:
|
|
535
555
|
>>> location = zia.locations.list_location_groups_lite()
|
|
536
556
|
"""
|
|
537
|
-
|
|
538
|
-
return self.rest.get("locations/groups/lite",
|
|
557
|
+
params = {"page": page, "pageSize": page_size}
|
|
558
|
+
return self.rest.get("locations/groups/lite", params=params)
|
|
539
559
|
|
|
540
560
|
def get_location_group_lite_by_id(self, group_id: int) -> Box:
|
|
541
561
|
"""
|
|
@@ -570,7 +590,39 @@ class LocationsAPI:
|
|
|
570
590
|
>>> locations = zia.locations.get_location_group_lite_by_name("Unassigned Locations")
|
|
571
591
|
"""
|
|
572
592
|
params = {"page": page, "pageSize": page_size, "search": group_name}
|
|
573
|
-
return self.rest.get("locations/groups/lite",
|
|
593
|
+
return self.rest.get("locations/groups/lite", params=params)
|
|
594
|
+
|
|
595
|
+
def list_location_groups_count(self, **kwargs) -> BoxList:
|
|
596
|
+
"""
|
|
597
|
+
Returns a list of location groups for your organization.
|
|
598
|
+
|
|
599
|
+
Args:
|
|
600
|
+
**kwargs: Optional keyword args.
|
|
601
|
+
|
|
602
|
+
Keyword Args:
|
|
603
|
+
group_type (str): The location group's type (i.e., Static or Dynamic).
|
|
604
|
+
last_mod_user (str): The admin who modified the location group last.
|
|
605
|
+
version (int): The version parameter is for Zscaler internal use only. Used by the service for backup operations.
|
|
606
|
+
name (str): The location group's name.
|
|
607
|
+
comments (str): Additional comments or information about the location group.
|
|
608
|
+
location_id (int): The unique identifier for a location within a location group.
|
|
609
|
+
|
|
610
|
+
Returns:
|
|
611
|
+
:obj:`BoxList`: A list of location group resource records.
|
|
612
|
+
|
|
613
|
+
Examples:
|
|
614
|
+
Gets the list of location groups for your organization:
|
|
615
|
+
>>> location = zia.locations.list_location_groups_count(group_type='Static', name='Corporate')
|
|
616
|
+
"""
|
|
617
|
+
params = {}
|
|
618
|
+
optional_params = ["group_type", "last_mod_user", "version", "name", "comments", "location_id"]
|
|
619
|
+
|
|
620
|
+
for key in optional_params:
|
|
621
|
+
if key in kwargs:
|
|
622
|
+
params[key] = kwargs[key]
|
|
623
|
+
|
|
624
|
+
response = self.rest.get("locations/groups/count", params=params)
|
|
625
|
+
return int(response.text)
|
|
574
626
|
|
|
575
627
|
def list_region_geo_coordinates(self, latitude: int, longitude: int) -> Box:
|
|
576
628
|
"""
|
|
@@ -26,14 +26,14 @@ class WorkloadGroupsAPI:
|
|
|
26
26
|
|
|
27
27
|
def list_groups(self, **kwargs) -> BoxList:
|
|
28
28
|
"""
|
|
29
|
-
Returns a list of all
|
|
29
|
+
Returns a list of all workload groups configured in the ZIA Admin Portal.
|
|
30
30
|
|
|
31
31
|
Returns:
|
|
32
|
-
:obj:`BoxList`: The list of
|
|
32
|
+
:obj:`BoxList`: The list of workload groups
|
|
33
33
|
|
|
34
34
|
Examples:
|
|
35
|
-
>>> for
|
|
36
|
-
... pprint(
|
|
35
|
+
>>> for workloads in zia.workload_groups.list_groups():
|
|
36
|
+
... pprint(workloads)
|
|
37
37
|
|
|
38
38
|
"""
|
|
39
39
|
response = self.rest.get("/workloadGroups")
|
|
@@ -43,6 +43,19 @@ class WorkloadGroupsAPI:
|
|
|
43
43
|
|
|
44
44
|
# Search Workload Group By Name
|
|
45
45
|
def get_group_by_name(self, name):
|
|
46
|
+
"""
|
|
47
|
+
Retrieves a specific workload group by its name.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
name (str): The name of the workload group to retrieve.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
:obj:`Box`: The workload group if found, otherwise None.
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
>>> workload = zia.workload_groups.get_group_by_name('BD_WORKLOAD_GROUP01')
|
|
57
|
+
... print(workload)
|
|
58
|
+
"""
|
|
46
59
|
groups = self.list_groups()
|
|
47
60
|
for group in groups:
|
|
48
61
|
if group.get("name") == name:
|
|
@@ -51,6 +64,19 @@ class WorkloadGroupsAPI:
|
|
|
51
64
|
|
|
52
65
|
# Search Workload Group By ID
|
|
53
66
|
def get_group_by_id(self, group_id):
|
|
67
|
+
"""
|
|
68
|
+
Retrieves a specific workload group by its unique identifier.
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
profile_id (str): The ID of the workload group to retrieve.
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
:obj:`Box`: The workload group if found, otherwise None.
|
|
75
|
+
|
|
76
|
+
Examples:
|
|
77
|
+
>>> workload = zia.get_group_by_name.get_group_by_id('12345')
|
|
78
|
+
... print(workload)
|
|
79
|
+
"""
|
|
54
80
|
groups = self.list_groups()
|
|
55
81
|
for group in groups:
|
|
56
82
|
if group.get("id") == group_id:
|
|
@@ -11,7 +11,7 @@ from box import BoxList
|
|
|
11
11
|
from zscaler import __version__
|
|
12
12
|
from zscaler.cache.no_op_cache import NoOpCache
|
|
13
13
|
from zscaler.cache.zscaler_cache import ZscalerCache
|
|
14
|
-
from zscaler.constants import ZPA_BASE_URLS, DEV_AUTH_URL
|
|
14
|
+
from zscaler.constants import ZPA_BASE_URLS, DEV_AUTH_URL, MAX_RETRIES
|
|
15
15
|
from zscaler.errors.http_error import HTTPError, ZscalerAPIError
|
|
16
16
|
from zscaler.exceptions.exceptions import HTTPException, ZscalerAPIException
|
|
17
17
|
from zscaler.logger import setup_logging
|
|
@@ -148,7 +148,7 @@ class ZPAClientHelper(ZPAClient):
|
|
|
148
148
|
"User-Agent": self.user_agent,
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
@retry_with_backoff(
|
|
151
|
+
@retry_with_backoff(MAX_RETRIES)
|
|
152
152
|
def login(self):
|
|
153
153
|
params = {"client_id": self.client_id, "client_secret": self.client_secret}
|
|
154
154
|
headers = {
|
|
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
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zia/admin_and_role_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/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
|
{zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/zscaler/zpa/app_segments_inspection.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
|
{zscaler_sdk_python-0.6.0 → zscaler_sdk_python-0.6.2}/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
|