zscaler-sdk-python 0.5.0__tar.gz → 0.5.1__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.5.0 → zscaler_sdk_python-0.5.1}/PKG-INFO +5 -3
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/README.md +4 -2
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/pyproject.toml +1 -1
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/__init__.py +1 -1
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/utils.py +4 -2
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/firewall.py +14 -48
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/zpa_gateway.py +3 -3
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/LICENSE.md +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/cache/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/cache/cache.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/constants.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/errors/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/errors/error.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/errors/http_error.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/exceptions/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/logger.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/user_agent.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/activate.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/admin_and_role_management.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/apptotal.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/audit_logs.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/client.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/cloud_apps.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/device_management.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/dlp.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/errors.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/isolation_profile.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/labels.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/locations.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/sandbox.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/security.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/ssl_inspection.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/traffic.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/url_categories.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/url_filtering.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/users.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/web_dlp.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/workload_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/README.md +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/__init__.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/app_segments.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/authdomains.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/certificates.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/client.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/connectors.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/errors.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/idp.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/inspection.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/isolation.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/lss.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/microtenants.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/policies.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/privileged_remote_access.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/provisioning.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/server_groups.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/servers.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zpa/service_edges.py +0 -0
- {zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/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.5.
|
|
3
|
+
Version: 0.5.1
|
|
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
|
|
@@ -337,8 +337,10 @@ Contributors
|
|
|
337
337
|
- Eddie Parra - [eparra](https://github.com/eparra)
|
|
338
338
|
- Paul Abbot - [abbottp](https://github.com/abbottp)
|
|
339
339
|
|
|
340
|
-
|
|
341
|
-
|
|
340
|
+
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK,
|
|
341
|
+
which this SDK was inspired on.
|
|
342
|
+
|
|
343
|
+
## MIT License
|
|
342
344
|
|
|
343
345
|
=======
|
|
344
346
|
|
|
@@ -287,8 +287,10 @@ Contributors
|
|
|
287
287
|
- Eddie Parra - [eparra](https://github.com/eparra)
|
|
288
288
|
- Paul Abbot - [abbottp](https://github.com/abbottp)
|
|
289
289
|
|
|
290
|
-
|
|
291
|
-
|
|
290
|
+
Thank you to [Mitch Kelly](https://github.com/mitchos/pyZscaler), creator of the [PyZscaler](https://github.com/mitchos/pyZscaler) SDK,
|
|
291
|
+
which this SDK was inspired on.
|
|
292
|
+
|
|
293
|
+
## MIT License
|
|
292
294
|
|
|
293
295
|
=======
|
|
294
296
|
|
|
@@ -166,6 +166,7 @@ def add_id_groups(id_groups: list, kwargs: dict, payload: dict):
|
|
|
166
166
|
# payload[payload_key] = [{"id": int(item)} if isinstance(item, str) and item.isdigit() else item for item in value]
|
|
167
167
|
# return
|
|
168
168
|
|
|
169
|
+
|
|
169
170
|
def transform_common_id_fields(id_groups: list, kwargs: dict, payload: dict):
|
|
170
171
|
for entry in id_groups:
|
|
171
172
|
key, payload_key = entry
|
|
@@ -174,7 +175,9 @@ def transform_common_id_fields(id_groups: list, kwargs: dict, payload: dict):
|
|
|
174
175
|
if key in ["zpa_gateway", "proxy_gateway", "zpa_server_group"]:
|
|
175
176
|
# Handle zpa_gateway, proxy_gateway, and zpa_server_group
|
|
176
177
|
if isinstance(value, dict):
|
|
177
|
-
payload[payload_key] = {
|
|
178
|
+
payload[payload_key] = {
|
|
179
|
+
snake_to_camel(k): v for k, v in value.items() if k in ["id", "name", "external_id"]
|
|
180
|
+
}
|
|
178
181
|
elif key in ["zpa_app_segments", "zpa_application_segments", "zpa_application_segment_groups"]:
|
|
179
182
|
# Handle zpa_app_segments, zpa_application_segments, and zpa_application_segment_groups
|
|
180
183
|
if isinstance(value, list):
|
|
@@ -575,4 +578,3 @@ def dump_response(
|
|
|
575
578
|
log_lines.append(f"\n{response_body}")
|
|
576
579
|
log_lines.append("-" * 68)
|
|
577
580
|
logger.info("\n".join(log_lines))
|
|
578
|
-
|
|
@@ -513,11 +513,8 @@ class FirewallPolicyAPI:
|
|
|
513
513
|
... ip_addresses=['192.0.2.0/29', '192.0.2.8/29', '192.0.2.128/25'])
|
|
514
514
|
|
|
515
515
|
"""
|
|
516
|
-
|
|
517
|
-
# Set payload to value of existing record
|
|
518
516
|
payload = {snake_to_camel(k): v for k, v in self.get_ip_source_group(group_id).items()}
|
|
519
517
|
|
|
520
|
-
# Update payload
|
|
521
518
|
for key, value in kwargs.items():
|
|
522
519
|
payload[snake_to_camel(key)] = value
|
|
523
520
|
|
|
@@ -554,30 +551,12 @@ class FirewallPolicyAPI:
|
|
|
554
551
|
|
|
555
552
|
Returns:
|
|
556
553
|
:obj:`Box`: The Network Application Group resource record.
|
|
554
|
+
|
|
555
|
+
Examples:
|
|
556
|
+
>>> pprint(zia.firewall.get_network_app_group('287342'))
|
|
557
|
+
|
|
557
558
|
"""
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
# If 'response' is a Box, it should contain the response data directly
|
|
561
|
-
# If 'response' is an HTTP response, it should have a 'status_code' attribute
|
|
562
|
-
if hasattr(response, "status_code"):
|
|
563
|
-
# Check if the response is successful and the content is not empty
|
|
564
|
-
if response.status_code == 200 and response.content:
|
|
565
|
-
# Convert to Box for consistent return type
|
|
566
|
-
return Box(response.json())
|
|
567
|
-
else:
|
|
568
|
-
# Handle non-200 responses
|
|
569
|
-
response.raise_for_status()
|
|
570
|
-
else:
|
|
571
|
-
# Assume 'response' is a Box and contains the desired data
|
|
572
|
-
if "ok" in response and response.ok:
|
|
573
|
-
# 'response' is a Box with the expected data
|
|
574
|
-
return response
|
|
575
|
-
else:
|
|
576
|
-
# Handle cases where the response Box does not contain the expected data
|
|
577
|
-
# For example, you might want to check for an 'error' or 'message' field
|
|
578
|
-
# and raise an exception or handle the situation as needed
|
|
579
|
-
# Example: raise ValueError("Failed to retrieve the network application group.")
|
|
580
|
-
return Box() # An empty Box indicates no data was found or an error occurred.
|
|
559
|
+
return self.rest.get(f"networkApplicationGroups/{group_id}")
|
|
581
560
|
|
|
582
561
|
def delete_network_app_group(self, group_id: str) -> int:
|
|
583
562
|
"""
|
|
@@ -595,7 +574,7 @@ class FirewallPolicyAPI:
|
|
|
595
574
|
"""
|
|
596
575
|
return self.rest.delete(f"networkApplicationGroups/{group_id}").status_code
|
|
597
576
|
|
|
598
|
-
def add_network_app_group(self, name: str, network_applications: list,
|
|
577
|
+
def add_network_app_group(self, name: str, network_applications: list, **kwargs) -> Box:
|
|
599
578
|
"""
|
|
600
579
|
Adds a new Network Application Group.
|
|
601
580
|
|
|
@@ -615,22 +594,16 @@ class FirewallPolicyAPI:
|
|
|
615
594
|
... description='Additional information about the Network Application Group.')
|
|
616
595
|
|
|
617
596
|
"""
|
|
618
|
-
|
|
619
597
|
payload = {
|
|
620
598
|
"name": name,
|
|
621
599
|
"networkApplications": network_applications,
|
|
622
|
-
"description": description,
|
|
623
600
|
}
|
|
624
601
|
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
status_code = response.status_code
|
|
629
|
-
# Handle error response
|
|
630
|
-
raise Exception(f"API call failed with status {status_code}: {response.json()}")
|
|
631
|
-
return response
|
|
602
|
+
# Add optional parameters to payload
|
|
603
|
+
for key, value in kwargs.items():
|
|
604
|
+
payload[snake_to_camel(key)] = value
|
|
632
605
|
|
|
633
|
-
|
|
606
|
+
return self.rest.post("networkApplicationGroups", json=payload)
|
|
634
607
|
|
|
635
608
|
def update_network_app_group(self, group_id: str, **kwargs) -> Box:
|
|
636
609
|
"""
|
|
@@ -672,8 +645,6 @@ class FirewallPolicyAPI:
|
|
|
672
645
|
payload[snake_to_camel(key)] = value
|
|
673
646
|
|
|
674
647
|
resp = self.rest.put(f"networkApplicationGroups/{group_id}", json=payload).status_code
|
|
675
|
-
|
|
676
|
-
# Return the object if it was updated successfully
|
|
677
648
|
if not isinstance(resp, Response):
|
|
678
649
|
return self.get_network_app_group(group_id)
|
|
679
650
|
|
|
@@ -938,10 +909,10 @@ class FirewallPolicyAPI:
|
|
|
938
909
|
# Convert tuple list to dict and add to payload
|
|
939
910
|
if ports is not None:
|
|
940
911
|
for items in ports:
|
|
941
|
-
|
|
912
|
+
port_dict = {"start": int(items[2])}
|
|
942
913
|
if len(items) == 4:
|
|
943
|
-
|
|
944
|
-
payload.setdefault(f"{items[0]}{items[1].title()}Ports", []).
|
|
914
|
+
port_dict["end"] = int(items[3])
|
|
915
|
+
payload.setdefault(f"{items[0]}{items[1].title()}Ports", []).append(port_dict)
|
|
945
916
|
|
|
946
917
|
# Add optional parameters to payload
|
|
947
918
|
for key, value in kwargs.items():
|
|
@@ -996,7 +967,6 @@ class FirewallPolicyAPI:
|
|
|
996
967
|
... ports=[
|
|
997
968
|
... ('dest', 'tcp', '500', '510')])
|
|
998
969
|
|
|
999
|
-
|
|
1000
970
|
"""
|
|
1001
971
|
payload = {snake_to_camel(k): v for k, v in self.get_network_service(service_id).items()}
|
|
1002
972
|
|
|
@@ -1014,11 +984,7 @@ class FirewallPolicyAPI:
|
|
|
1014
984
|
for key, value in kwargs.items():
|
|
1015
985
|
payload[snake_to_camel(key)] = value
|
|
1016
986
|
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
# Return the object if it was updated successfully
|
|
1020
|
-
if not isinstance(resp, Response):
|
|
1021
|
-
return self.get_network_service(service_id)
|
|
987
|
+
return self.rest.put(f"networkServices/{service_id}", json=payload)
|
|
1022
988
|
|
|
1023
989
|
def list_time_windows(self) -> Box:
|
|
1024
990
|
"""
|
|
@@ -97,7 +97,7 @@ class ZPAGatewayAPI:
|
|
|
97
97
|
# Add zpa_server_group to kwargs
|
|
98
98
|
if zpa_server_group:
|
|
99
99
|
kwargs["zpa_server_group"] = zpa_server_group
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
# Define the id groups specific to this function
|
|
102
102
|
zpa_gateway_id_groups = [
|
|
103
103
|
("zpa_server_group", "zpaServerGroup"),
|
|
@@ -148,7 +148,7 @@ class ZPAGatewayAPI:
|
|
|
148
148
|
]
|
|
149
149
|
|
|
150
150
|
transform_common_id_fields(zpa_gateway_id_groups, kwargs, payload)
|
|
151
|
-
|
|
151
|
+
|
|
152
152
|
for key, value in kwargs.items():
|
|
153
153
|
payload[snake_to_camel(key)] = value
|
|
154
154
|
|
|
@@ -156,7 +156,7 @@ class ZPAGatewayAPI:
|
|
|
156
156
|
if isinstance(response, Response) and not response.ok:
|
|
157
157
|
raise Exception(f"API call failed with status {response.status_code}: {response.json()}")
|
|
158
158
|
return self.get_gateway(gateway_id)
|
|
159
|
-
|
|
159
|
+
|
|
160
160
|
def delete_gateway(self, gateway_id):
|
|
161
161
|
"""
|
|
162
162
|
Deletes the specified ZPA Gateway.
|
|
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.5.0 → zscaler_sdk_python-0.5.1}/zscaler/zia/admin_and_role_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/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
|
{zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/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
|
|
File without changes
|
|
File without changes
|
{zscaler_sdk_python-0.5.0 → zscaler_sdk_python-0.5.1}/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
|