diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a1f1759..9592443e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,30 @@ # Zscaler Python SDK Changelog -## 1.9.13 (January 22, 2025) +## 1.9.14 (February 10, 2026) + +### Notes + +- Python Versions: **v3.9, v3.10, v3.11, v3.12** + +### Enhancements: + +#### Zscaler AI Guard + +* [PR #457](https://github.com/zscaler/zscaler-sdk-python/pull/457) - Added new Zscaler AI Guard API endpoints + - `/detection/execute-policy` + - `/detection/resolve-and-execute-policy` + +### ZTW API + +* [PR #457](https://github.com/zscaler/zscaler-sdk-python/pull/457) - Added `DELETE` method for `forwarding_rules` resource. + +* [PR #457](https://github.com/zscaler/zscaler-sdk-python/pull/457) - Added new attributes `url_type`, `regex_patterns`, and `regex_patterns_retaining_parent_category` to `zia_url_categories` resource to specify whether the category uses exact URLs or regex patterns. Supported values are `EXACT` and `REGEX`. See [Zscaler Release Notes](https://help.zscaler.com/zia/release-upgrade-summary-2026) for details. To enable this feature, contact Zscaler Support. + +### Bug Fixes + +* [PR #457](https://github.com/zscaler/zscaler-sdk-python/pull/457) - Replaced `flatdict` dependency with internal `flatten_dict`/`unflatten_dict` helpers to fix build failures on `setuptools 82+`. Thanks [@pankaj28843](https://github.com/pankaj28843) for reporting [#454](https://github.com/zscaler/zscaler-sdk-python/issues/454) and [@enza252](https://github.com/enza252) for the [initial implementation](https://github.com/zscaler/zscaler-sdk-python/pull/455). + +## 1.9.13 (January 22, 2026) ### Notes @@ -11,7 +35,7 @@ * [PR #450](https://github.com/zscaler/zscaler-sdk-python/pull/450) - Added new function `get_rule_type_label` to retrieves a list of rule labels based on the specified rule type -## 1.9.12 (January 19, 2025) +## 1.9.12 (January 19, 2026) ### Notes diff --git a/Makefile b/Makefile index dbd4e5d0..bda9232a 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,7 @@ help: @echo "$(COLOR_OK) lint:zia Check style with flake8 for zia packages$(COLOR_NONE)" @echo "$(COLOR_OK) lint:zidentity Check style with flake8 for zidentity packages$(COLOR_NONE)" @echo "$(COLOR_OK) lint:zinsights Check style with flake8 for zinsights packages$(COLOR_NONE)" + @echo "$(COLOR_OK) lint:zaiguard Check style with flake8 for zaiguard packages$(COLOR_NONE)" @echo "$(COLOR_OK) lint:zwa Check style with flake8 for zwa packages$(COLOR_NONE)" @echo "$(COLOR_OK) coverage Check code coverage quickly with the default Python$(COLOR_NONE)" @echo "$(COLOR_WARNING)test$(COLOR_NONE)" @@ -52,6 +53,7 @@ help: @echo "$(COLOR_OK) test:integration:zia Run only zia integration tests$(COLOR_NONE)" @echo "$(COLOR_OK) test:integration:zpa Run only zpa integration tests$(COLOR_NONE)" @echo "$(COLOR_OK) test:integration:zinsights Run only zinsights integration tests$(COLOR_NONE)" + @echo "$(COLOR_OK) test:integration:zaiguard Run only zaiguard integration tests$(COLOR_NONE)" @echo "$(COLOR_WARNING)build$(COLOR_NONE)" @echo "$(COLOR_OK) build:dist Build the distribution for publishing$(COLOR_NONE)" @echo "$(COLOR_WARNING)publish$(COLOR_NONE)" @@ -127,6 +129,10 @@ lint\:zeasm: poetry run flake8 zscaler/zeasm --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics poetry run flake8 zscaler/zeasm --count --select=E9,F63,F7,F82 --show-source --statistics +lint\:zaiguard: + poetry run flake8 zscaler/zaiguard --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + poetry run flake8 zscaler/zaiguard --count --select=E9,F63,F7,F82 --show-source --statistics + format: poetry run black . @@ -328,19 +334,19 @@ test\:integration\:live: sweep\:zia: @echo "$(COLOR_WARNING)WARNING: This will destroy infrastructure. Use only in development accounts.$(COLOR_NONE)" - ZIA_SDK_TEST_SWEEP=true python tests/integration/zia/sweep/run_sweep.py --sweep + ZIA_SDK_TEST_SWEEP=true poetry run python tests/integration/zia/sweep/run_sweep.py --sweep sweep\:zpa: @echo "$(COLOR_WARNING)WARNING: This will destroy infrastructure. Use only in development accounts.$(COLOR_NONE)" - ZPA_SDK_TEST_SWEEP=true python tests/integration/zpa/sweep/run_sweep.py --sweep + ZPA_SDK_TEST_SWEEP=true poetry run python tests/integration/zpa/sweep/run_sweep.py --sweep sweep\:zidentity: @echo "$(COLOR_WARNING)WARNING: This will destroy infrastructure. Use only in development accounts.$(COLOR_NONE)" - ZIDENTITY_SDK_TEST_SWEEP=true python tests/integration/zidentity/sweep/run_sweep.py --sweep + ZIDENTITY_SDK_TEST_SWEEP=true poetry run python tests/integration/zidentity/sweep/run_sweep.py --sweep sweep\:zinsights: @echo "$(COLOR_WARNING)WARNING: This will destroy infrastructure. Use only in development accounts.$(COLOR_NONE)" - ZINSIGHTS_SDK_TEST_SWEEP=true python tests/integration/zinsights/sweep/run_sweep.py --sweep + ZINSIGHTS_SDK_TEST_SWEEP=true poetry run python tests/integration/zinsights/sweep/run_sweep.py --sweep build\:dist: diff --git a/docsrc/dev_requirements.txt b/docsrc/dev_requirements.txt index 2599d680..657afdf3 100644 --- a/docsrc/dev_requirements.txt +++ b/docsrc/dev_requirements.txt @@ -14,5 +14,4 @@ python-box>=7.3.2 pydash>=8.0.5 aenum>=3.1.11 arrow>=1.3.0 -flatdict>=4.0.0 pytz diff --git a/docsrc/index.rst b/docsrc/index.rst index cd0f857f..669b1880 100644 --- a/docsrc/index.rst +++ b/docsrc/index.rst @@ -15,6 +15,7 @@ zs/zidentity/index zs/zinsights/index zs/zeasm/index + zs/zaiguard/index zs/guides/index Official Python SDK for the Zscaler Products @@ -61,6 +62,7 @@ across multiple products such as: - `Zidentity API `__ - `Z-Insights API `__ - `EASM API `__ +- `Zscaler AI Guard API `__ This SDK is designed to support the new Zscaler API framework `OneAPI `__ via a @@ -169,6 +171,11 @@ You'll also need - `EASM API `__ +- `Z-Insights + API `__ + +- `Zscaler AI Guard API `__ + Usage guide ----------- @@ -228,6 +235,7 @@ programmatic interaction with the following products: API `__ - `EASM API `__ +- `Zscaler AI Guard API `__ **NOTE** All other products such as Zscaler Cloud Connector (ZTW) and Zscaler Digital Experience (ZDX) are supported only via the legacy diff --git a/docsrc/zs/guides/release_notes.rst b/docsrc/zs/guides/release_notes.rst index fc5cddbf..94351d35 100644 --- a/docsrc/zs/guides/release_notes.rst +++ b/docsrc/zs/guides/release_notes.rst @@ -6,7 +6,43 @@ Release Notes Zscaler Python SDK Changelog ---------------------------- -1.9.13 (January 22, 2025) +1.9.14 (February 10, 2026) +--------------------------- + +Notes +----- + +- Python Versions: **v3.9, v3.10, v3.11, v3.12** + +Enhancements: +------------- + +Zscaler AI Guard +^^^^^^^^^^^^^^^^^^ + +(`#457 `_) - Added new Zscaler AI Guard API endpoints: + +- ``/detection/execute-policy`` +- ``/detection/resolve-and-execute-policy`` + +ZIA API +^^^^^^^ + +(`#457 `_) - Added new attributes `url_type`, `regex_patterns`, and `regex_patterns_retaining_parent_category` to ZIA `url_categories` resource to specify whether the category uses exact URLs or regex patterns. Supported values are `EXACT` and `REGEX`. See `Zscaler Release Notes 2026 `_ for details. To enable this feature, contact Zscaler Support. + + +ZTW API +^^^^^^^ + +(`#457 `_) - Added ``DELETE`` method for ``forwarding_rules`` resource. + +Bug Fixes: +---------- + +(`#457 `_) - Replaced ``flatdict`` dependency with internal ``flatten_dict``/``unflatten_dict`` helpers to fix build failures on ``setuptools 82+``. Thanks `@pankaj28843 `_ for reporting `#454 `_ and `@enza252 `_ for the `initial implementation `_. + + +1.9.13 (January 22, 2026) --------------------------- Notes @@ -19,7 +55,7 @@ Notes (`#450 `_) - Added new function `get_rule_type_label` to retrieves a list of rule labels based on the specified rule type -1.9.12 (January 19, 2025) +1.9.12 (January 19, 2026) --------------------------- Notes diff --git a/docsrc/zs/zaiguard/index.rst b/docsrc/zs/zaiguard/index.rst new file mode 100644 index 00000000..d85a3a46 --- /dev/null +++ b/docsrc/zs/zaiguard/index.rst @@ -0,0 +1,14 @@ +Zscaler AI Guard +================= +This package covers the Zscaler AI Guard interface. + +.. toctree:: + :glob: + :hidden: + + * + +.. automodule:: zscaler.zaiguard + :members: + :undoc-members: + :show-inheritance: diff --git a/docsrc/zs/zaiguard/policy_detection.rst b/docsrc/zs/zaiguard/policy_detection.rst new file mode 100644 index 00000000..31b1efc1 --- /dev/null +++ b/docsrc/zs/zaiguard/policy_detection.rst @@ -0,0 +1,12 @@ +Policy Detection +----------------- + +The following methods allow for interaction with the Zscaler AI Guard Policy Detection API endpoints. + +Methods are accessible via ``zaiguard.policy_detection`` +.. _zaiguard-policy_detection: + +.. automodule:: zscaler.zaiguard.policy_detection + :members: + :undoc-members: + :show-inheritance: diff --git a/poetry.lock b/poetry.lock index c419dd0a..c4dd3289 100644 --- a/poetry.lock +++ b/poetry.lock @@ -62,13 +62,13 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[package]] name = "babel" -version = "2.17.0" +version = "2.18.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" files = [ - {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, - {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, + {file = "babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35"}, + {file = "babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d"}, ] [package.extras] @@ -511,65 +511,60 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "46.0.3" +version = "46.0.5" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = "!=3.9.0,!=3.9.1,>=3.8" files = [ - {file = "cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e"}, - {file = "cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926"}, - {file = "cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71"}, - {file = "cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac"}, - {file = "cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018"}, - {file = "cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb"}, - {file = "cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c"}, - {file = "cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665"}, - {file = "cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3"}, - {file = "cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20"}, - {file = "cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de"}, - {file = "cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914"}, - {file = "cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db"}, - {file = "cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21"}, - {file = "cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04"}, - {file = "cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506"}, - {file = "cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963"}, - {file = "cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4"}, - {file = "cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df"}, - {file = "cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f"}, - {file = "cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372"}, - {file = "cryptography-46.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a23582810fedb8c0bc47524558fb6c56aac3fc252cb306072fd2815da2a47c32"}, - {file = "cryptography-46.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e7aec276d68421f9574040c26e2a7c3771060bc0cff408bae1dcb19d3ab1e63c"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9"}, - {file = "cryptography-46.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c"}, - {file = "cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1"}, + {file = "cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0"}, + {file = "cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731"}, + {file = "cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82"}, + {file = "cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1"}, + {file = "cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48"}, + {file = "cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4"}, + {file = "cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0"}, + {file = "cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663"}, + {file = "cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826"}, + {file = "cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d"}, + {file = "cryptography-46.0.5-cp314-cp314t-win32.whl", hash = "sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a"}, + {file = "cryptography-46.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4"}, + {file = "cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d"}, + {file = "cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c"}, + {file = "cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4"}, + {file = "cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9"}, + {file = "cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72"}, + {file = "cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257"}, + {file = "cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7"}, + {file = "cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d"}, ] [package.dependencies] @@ -583,7 +578,7 @@ nox = ["nox[uv] (>=2024.4.15)"] pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.14)", "ruff (>=0.11.11)"] sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi (>=2024)", "cryptography-vectors (==46.0.3)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] +test = ["certifi (>=2024)", "cryptography-vectors (==46.0.5)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] @@ -630,16 +625,6 @@ mccabe = ">=0.7.0,<0.8.0" pycodestyle = ">=2.14.0,<2.15.0" pyflakes = ">=3.4.0,<3.5.0" -[[package]] -name = "flatdict" -version = "4.0.1" -description = "Python module for interacting with nested dicts as a single level dict with delimited keys." -optional = false -python-versions = "*" -files = [ - {file = "flatdict-4.0.1.tar.gz", hash = "sha256:cd32f08fd31ed21eb09ebc76f06b6bd12046a24f77beb1fd0281917e47f26742"}, -] - [[package]] name = "h11" version = "0.16.0" @@ -893,13 +878,13 @@ files = [ [[package]] name = "pathspec" -version = "1.0.3" +version = "1.0.4" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.9" files = [ - {file = "pathspec-1.0.3-py3-none-any.whl", hash = "sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c"}, - {file = "pathspec-1.0.3.tar.gz", hash = "sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d"}, + {file = "pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723"}, + {file = "pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645"}, ] [package.extras] @@ -1016,20 +1001,20 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyjwt" -version = "2.10.1" +version = "2.11.0" description = "JSON Web Token implementation in Python" optional = false python-versions = ">=3.9" files = [ - {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, - {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, + {file = "pyjwt-2.11.0-py3-none-any.whl", hash = "sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469"}, + {file = "pyjwt-2.11.0.tar.gz", hash = "sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623"}, ] [package.extras] crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +dev = ["coverage[toml] (==7.10.7)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=8.4.2,<9.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] +tests = ["coverage[toml] (==7.10.7)", "pytest (>=8.4.2,<9.0.0)"] [[package]] name = "pytest" @@ -1180,53 +1165,53 @@ six = ">=1.5" [[package]] name = "pytokens" -version = "0.4.0" +version = "0.4.1" description = "A Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons." optional = false python-versions = ">=3.8" files = [ - {file = "pytokens-0.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:af0c3166aea367a9e755a283171befb92dd3043858b94ae9b3b7efbe9def26a3"}, - {file = "pytokens-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daae524ed14ca459932cbf51d74325bea643701ba8a8b0cc2d10f7cd4b3e2b63"}, - {file = "pytokens-0.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e95cb158c44d642ed62f555bf8136bbe780dbd64d2fb0b9169e11ffb944664c3"}, - {file = "pytokens-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:df58d44630eaf25f587540e94bdf1fc50b4e6d5f212c786de0fb024bfcb8753a"}, - {file = "pytokens-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55efcc36f9a2e0e930cfba0ce7f83445306b02f8326745585ed5551864eba73a"}, - {file = "pytokens-0.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:92eb3ef88f27c22dc9dbab966ace4d61f6826e02ba04dac8e2d65ea31df56c8e"}, - {file = "pytokens-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4b77858a680635ee9904306f54b0ee4781effb89e211ba0a773d76539537165"}, - {file = "pytokens-0.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25cacc20c2ad90acb56f3739d87905473c54ca1fa5967ffcd675463fe965865e"}, - {file = "pytokens-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:628fab535ebc9079e4db35cd63cb401901c7ce8720a9834f9ad44b9eb4e0f1d4"}, - {file = "pytokens-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:4d0f568d7e82b7e96be56d03b5081de40e43c904eb6492bf09aaca47cd55f35b"}, - {file = "pytokens-0.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cd8da894e5a29ba6b6da8be06a4f7589d7220c099b5e363cb0643234b9b38c2a"}, - {file = "pytokens-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:237ba7cfb677dbd3b01b09860810aceb448871150566b93cd24501d5734a04b1"}, - {file = "pytokens-0.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01d1a61e36812e4e971cfe2c0e4c1f2d66d8311031dac8bf168af8a249fa04dd"}, - {file = "pytokens-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e47e2ef3ec6ee86909e520d79f965f9b23389fda47460303cf715d510a6fe544"}, - {file = "pytokens-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d36954aba4557fd5a418a03cf595ecbb1cdcce119f91a49b19ef09d691a22ae"}, - {file = "pytokens-0.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:73eff3bdd8ad08da679867992782568db0529b887bed4c85694f84cdf35eafc6"}, - {file = "pytokens-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d97cc1f91b1a8e8ebccf31c367f28225699bea26592df27141deade771ed0afb"}, - {file = "pytokens-0.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c8952c537cb73a1a74369501a83b7f9d208c3cf92c41dd88a17814e68d48ce"}, - {file = "pytokens-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5dbf56f3c748aed9310b310d5b8b14e2c96d3ad682ad5a943f381bdbbdddf753"}, - {file = "pytokens-0.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:e131804513597f2dff2b18f9911d9b6276e21ef3699abeffc1c087c65a3d975e"}, - {file = "pytokens-0.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0d7374c917197106d3c4761374718bc55ea2e9ac0fb94171588ef5840ee1f016"}, - {file = "pytokens-0.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cd3fa1caf9e47a72ee134a29ca6b5bea84712724bba165d6628baa190c6ea5b"}, - {file = "pytokens-0.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c6986576b7b07fe9791854caa5347923005a80b079d45b63b0be70d50cce5f1"}, - {file = "pytokens-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9940f7c2e2f54fb1cb5fe17d0803c54da7a2bf62222704eb4217433664a186a7"}, - {file = "pytokens-0.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:54691cf8f299e7efabcc25adb4ce715d3cef1491e1c930eaf555182f898ef66a"}, - {file = "pytokens-0.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:94ff5db97a0d3cd7248a5b07ba2167bd3edc1db92f76c6db00137bbaf068ddf8"}, - {file = "pytokens-0.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0dd6261cd9cc95fae1227b1b6ebee023a5fd4a4b6330b071c73a516f5f59b63"}, - {file = "pytokens-0.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cdca8159df407dbd669145af4171a0d967006e0be25f3b520896bc7068f02c4"}, - {file = "pytokens-0.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4b5770abeb2a24347380a1164a558f0ebe06e98aedbd54c45f7929527a5fb26e"}, - {file = "pytokens-0.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:74500d72c561dad14c037a9e86a657afd63e277dd5a3bb7570932ab7a3b12551"}, - {file = "pytokens-0.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e368e0749e4e9d86a6e08763310dc92bc69ad73d9b6db5243b30174c71a8a534"}, - {file = "pytokens-0.4.0-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:865cc65c75c8f2e9e0d8330338f649b12bfd9442561900ebaf58c596a72107d2"}, - {file = "pytokens-0.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dbb9338663b3538f31c4ca7afe4f38d9b9b3a16a8be18a273a5704a1bc7a2367"}, - {file = "pytokens-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:658f870523ac1a5f4733d7db61ce9af61a0c23b2aeea3d03d1800c93f760e15f"}, - {file = "pytokens-0.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d69a2491190a74e4b6f87f3b9dfce7a6873de3f3bf330d20083d374380becac0"}, - {file = "pytokens-0.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8cd795191c4127fcb3d7b76d84006a07748c390226f47657869235092eedbc05"}, - {file = "pytokens-0.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef2bcbddb73ac18599a86c8c549d5145130f2cd9d83dc2b5482fd8322b7806cd"}, - {file = "pytokens-0.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:06ac081c1187389762b58823d90d6339e6880ce0df912f71fb9022d81d7fd429"}, - {file = "pytokens-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:278129d54573efdc79e75c6082e73ebd19858e22a2e848359f93629323186ca6"}, - {file = "pytokens-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:9380fb6d96fa5ab83ed606ebad27b6171930cc14a8a8d215f6adb187ba428690"}, - {file = "pytokens-0.4.0-py3-none-any.whl", hash = "sha256:0508d11b4de157ee12063901603be87fb0253e8f4cb9305eb168b1202ab92068"}, - {file = "pytokens-0.4.0.tar.gz", hash = "sha256:6b0b03e6ea7c9f9d47c5c61164b69ad30f4f0d70a5d9fe7eac4d19f24f77af2d"}, + {file = "pytokens-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a44ed93ea23415c54f3face3b65ef2b844d96aeb3455b8a69b3df6beab6acc5"}, + {file = "pytokens-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:add8bf86b71a5d9fb5b89f023a80b791e04fba57960aa790cc6125f7f1d39dfe"}, + {file = "pytokens-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:670d286910b531c7b7e3c0b453fd8156f250adb140146d234a82219459b9640c"}, + {file = "pytokens-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4e691d7f5186bd2842c14813f79f8884bb03f5995f0575272009982c5ac6c0f7"}, + {file = "pytokens-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:27b83ad28825978742beef057bfe406ad6ed524b2d28c252c5de7b4a6dd48fa2"}, + {file = "pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440"}, + {file = "pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc"}, + {file = "pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d"}, + {file = "pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16"}, + {file = "pytokens-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6"}, + {file = "pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083"}, + {file = "pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1"}, + {file = "pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1"}, + {file = "pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9"}, + {file = "pytokens-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68"}, + {file = "pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b"}, + {file = "pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f"}, + {file = "pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1"}, + {file = "pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4"}, + {file = "pytokens-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78"}, + {file = "pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321"}, + {file = "pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa"}, + {file = "pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d"}, + {file = "pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324"}, + {file = "pytokens-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9"}, + {file = "pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb"}, + {file = "pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3"}, + {file = "pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975"}, + {file = "pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a"}, + {file = "pytokens-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918"}, + {file = "pytokens-0.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:da5baeaf7116dced9c6bb76dc31ba04a2dc3695f3d9f74741d7910122b456edc"}, + {file = "pytokens-0.4.1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11edda0942da80ff58c4408407616a310adecae1ddd22eef8c692fe266fa5009"}, + {file = "pytokens-0.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0fc71786e629cef478cbf29d7ea1923299181d0699dbe7c3c0f4a583811d9fc1"}, + {file = "pytokens-0.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dcafc12c30dbaf1e2af0490978352e0c4041a7cde31f4f81435c2a5e8b9cabb6"}, + {file = "pytokens-0.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:42f144f3aafa5d92bad964d471a581651e28b24434d184871bd02e3a0d956037"}, + {file = "pytokens-0.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:34bcc734bd2f2d5fe3b34e7b3c0116bfb2397f2d9666139988e7a3eb5f7400e3"}, + {file = "pytokens-0.4.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941d4343bf27b605e9213b26bfa1c4bf197c9c599a9627eb7305b0defcfe40c1"}, + {file = "pytokens-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3ad72b851e781478366288743198101e5eb34a414f1d5627cdd585ca3b25f1db"}, + {file = "pytokens-0.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:682fa37ff4d8e95f7df6fe6fe6a431e8ed8e788023c6bcc0f0880a12eab80ad1"}, + {file = "pytokens-0.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:30f51edd9bb7f85c748979384165601d028b84f7bd13fe14d3e065304093916a"}, + {file = "pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de"}, + {file = "pytokens-0.4.1.tar.gz", hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a"}, ] [package.extras] @@ -1940,118 +1925,85 @@ test = ["pytest (>=6.0.0)", "setuptools (>=77)"] [[package]] name = "wrapt" -version = "2.0.1" +version = "2.1.1" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "wrapt-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:64b103acdaa53b7caf409e8d45d39a8442fe6dcfec6ba3f3d141e0cc2b5b4dbd"}, - {file = "wrapt-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:91bcc576260a274b169c3098e9a3519fb01f2989f6d3d386ef9cbf8653de1374"}, - {file = "wrapt-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab594f346517010050126fcd822697b25a7031d815bb4fbc238ccbe568216489"}, - {file = "wrapt-2.0.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:36982b26f190f4d737f04a492a68accbfc6fa042c3f42326fdfbb6c5b7a20a31"}, - {file = "wrapt-2.0.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23097ed8bc4c93b7bf36fa2113c6c733c976316ce0ee2c816f64ca06102034ef"}, - {file = "wrapt-2.0.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8bacfe6e001749a3b64db47bcf0341da757c95959f592823a93931a422395013"}, - {file = "wrapt-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8ec3303e8a81932171f455f792f8df500fc1a09f20069e5c16bd7049ab4e8e38"}, - {file = "wrapt-2.0.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:3f373a4ab5dbc528a94334f9fe444395b23c2f5332adab9ff4ea82f5a9e33bc1"}, - {file = "wrapt-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f49027b0b9503bf6c8cdc297ca55006b80c2f5dd36cecc72c6835ab6e10e8a25"}, - {file = "wrapt-2.0.1-cp310-cp310-win32.whl", hash = "sha256:8330b42d769965e96e01fa14034b28a2a7600fbf7e8f0cc90ebb36d492c993e4"}, - {file = "wrapt-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:1218573502a8235bb8a7ecaed12736213b22dcde9feab115fa2989d42b5ded45"}, - {file = "wrapt-2.0.1-cp310-cp310-win_arm64.whl", hash = "sha256:eda8e4ecd662d48c28bb86be9e837c13e45c58b8300e43ba3c9b4fa9900302f7"}, - {file = "wrapt-2.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e17283f533a0d24d6e5429a7d11f250a58d28b4ae5186f8f47853e3e70d2590"}, - {file = "wrapt-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85df8d92158cb8f3965aecc27cf821461bb5f40b450b03facc5d9f0d4d6ddec6"}, - {file = "wrapt-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1be685ac7700c966b8610ccc63c3187a72e33cab53526a27b2a285a662cd4f7"}, - {file = "wrapt-2.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:df0b6d3b95932809c5b3fecc18fda0f1e07452d05e2662a0b35548985f256e28"}, - {file = "wrapt-2.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da7384b0e5d4cae05c97cd6f94faaf78cc8b0f791fc63af43436d98c4ab37bb"}, - {file = "wrapt-2.0.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ec65a78fbd9d6f083a15d7613b2800d5663dbb6bb96003899c834beaa68b242c"}, - {file = "wrapt-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7de3cc939be0e1174969f943f3b44e0d79b6f9a82198133a5b7fc6cc92882f16"}, - {file = "wrapt-2.0.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fb1a5b72cbd751813adc02ef01ada0b0d05d3dcbc32976ce189a1279d80ad4a2"}, - {file = "wrapt-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3fa272ca34332581e00bf7773e993d4f632594eb2d1b0b162a9038df0fd971dd"}, - {file = "wrapt-2.0.1-cp311-cp311-win32.whl", hash = "sha256:fc007fdf480c77301ab1afdbb6ab22a5deee8885f3b1ed7afcb7e5e84a0e27be"}, - {file = "wrapt-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:47434236c396d04875180171ee1f3815ca1eada05e24a1ee99546320d54d1d1b"}, - {file = "wrapt-2.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:837e31620e06b16030b1d126ed78e9383815cbac914693f54926d816d35d8edf"}, - {file = "wrapt-2.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1fdbb34da15450f2b1d735a0e969c24bdb8d8924892380126e2a293d9902078c"}, - {file = "wrapt-2.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3d32794fe940b7000f0519904e247f902f0149edbe6316c710a8562fb6738841"}, - {file = "wrapt-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:386fb54d9cd903ee0012c09291336469eb7b244f7183d40dc3e86a16a4bace62"}, - {file = "wrapt-2.0.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7b219cb2182f230676308cdcacd428fa837987b89e4b7c5c9025088b8a6c9faf"}, - {file = "wrapt-2.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:641e94e789b5f6b4822bb8d8ebbdfc10f4e4eae7756d648b717d980f657a9eb9"}, - {file = "wrapt-2.0.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe21b118b9f58859b5ebaa4b130dee18669df4bd111daad082b7beb8799ad16b"}, - {file = "wrapt-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:17fb85fa4abc26a5184d93b3efd2dcc14deb4b09edcdb3535a536ad34f0b4dba"}, - {file = "wrapt-2.0.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b89ef9223d665ab255ae42cc282d27d69704d94be0deffc8b9d919179a609684"}, - {file = "wrapt-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a453257f19c31b31ba593c30d997d6e5be39e3b5ad9148c2af5a7314061c63eb"}, - {file = "wrapt-2.0.1-cp312-cp312-win32.whl", hash = "sha256:3e271346f01e9c8b1130a6a3b0e11908049fe5be2d365a5f402778049147e7e9"}, - {file = "wrapt-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:2da620b31a90cdefa9cd0c2b661882329e2e19d1d7b9b920189956b76c564d75"}, - {file = "wrapt-2.0.1-cp312-cp312-win_arm64.whl", hash = "sha256:aea9c7224c302bc8bfc892b908537f56c430802560e827b75ecbde81b604598b"}, - {file = "wrapt-2.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:47b0f8bafe90f7736151f61482c583c86b0693d80f075a58701dd1549b0010a9"}, - {file = "wrapt-2.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cbeb0971e13b4bd81d34169ed57a6dda017328d1a22b62fda45e1d21dd06148f"}, - {file = "wrapt-2.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb7cffe572ad0a141a7886a1d2efa5bef0bf7fe021deeea76b3ab334d2c38218"}, - {file = "wrapt-2.0.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8d60527d1ecfc131426b10d93ab5d53e08a09c5fa0175f6b21b3252080c70a9"}, - {file = "wrapt-2.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c654eafb01afac55246053d67a4b9a984a3567c3808bb7df2f8de1c1caba2e1c"}, - {file = "wrapt-2.0.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:98d873ed6c8b4ee2418f7afce666751854d6d03e3c0ec2a399bb039cd2ae89db"}, - {file = "wrapt-2.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9e850f5b7fc67af856ff054c71690d54fa940c3ef74209ad9f935b4f66a0233"}, - {file = "wrapt-2.0.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e505629359cb5f751e16e30cf3f91a1d3ddb4552480c205947da415d597f7ac2"}, - {file = "wrapt-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2879af909312d0baf35f08edeea918ee3af7ab57c37fe47cb6a373c9f2749c7b"}, - {file = "wrapt-2.0.1-cp313-cp313-win32.whl", hash = "sha256:d67956c676be5a24102c7407a71f4126d30de2a569a1c7871c9f3cabc94225d7"}, - {file = "wrapt-2.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:9ca66b38dd642bf90c59b6738af8070747b610115a39af2498535f62b5cdc1c3"}, - {file = "wrapt-2.0.1-cp313-cp313-win_arm64.whl", hash = "sha256:5a4939eae35db6b6cec8e7aa0e833dcca0acad8231672c26c2a9ab7a0f8ac9c8"}, - {file = "wrapt-2.0.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a52f93d95c8d38fed0669da2ebdb0b0376e895d84596a976c15a9eb45e3eccb3"}, - {file = "wrapt-2.0.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4e54bbf554ee29fcceee24fa41c4d091398b911da6e7f5d7bffda963c9aed2e1"}, - {file = "wrapt-2.0.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:908f8c6c71557f4deaa280f55d0728c3bca0960e8c3dd5ceeeafb3c19942719d"}, - {file = "wrapt-2.0.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e2f84e9af2060e3904a32cea9bb6db23ce3f91cfd90c6b426757cf7cc01c45c7"}, - {file = "wrapt-2.0.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3612dc06b436968dfb9142c62e5dfa9eb5924f91120b3c8ff501ad878f90eb3"}, - {file = "wrapt-2.0.1-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d2d947d266d99a1477cd005b23cbd09465276e302515e122df56bb9511aca1b"}, - {file = "wrapt-2.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7d539241e87b650cbc4c3ac9f32c8d1ac8a54e510f6dca3f6ab60dcfd48c9b10"}, - {file = "wrapt-2.0.1-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:4811e15d88ee62dbf5c77f2c3ff3932b1e3ac92323ba3912f51fc4016ce81ecf"}, - {file = "wrapt-2.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c1c91405fcf1d501fa5d55df21e58ea49e6b879ae829f1039faaf7e5e509b41e"}, - {file = "wrapt-2.0.1-cp313-cp313t-win32.whl", hash = "sha256:e76e3f91f864e89db8b8d2a8311d57df93f01ad6bb1e9b9976d1f2e83e18315c"}, - {file = "wrapt-2.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:83ce30937f0ba0d28818807b303a412440c4b63e39d3d8fc036a94764b728c92"}, - {file = "wrapt-2.0.1-cp313-cp313t-win_arm64.whl", hash = "sha256:4b55cacc57e1dc2d0991dbe74c6419ffd415fb66474a02335cb10efd1aa3f84f"}, - {file = "wrapt-2.0.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:5e53b428f65ece6d9dad23cb87e64506392b720a0b45076c05354d27a13351a1"}, - {file = "wrapt-2.0.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ad3ee9d0f254851c71780966eb417ef8e72117155cff04821ab9b60549694a55"}, - {file = "wrapt-2.0.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d7b822c61ed04ee6ad64bc90d13368ad6eb094db54883b5dde2182f67a7f22c0"}, - {file = "wrapt-2.0.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7164a55f5e83a9a0b031d3ffab4d4e36bbec42e7025db560f225489fa929e509"}, - {file = "wrapt-2.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e60690ba71a57424c8d9ff28f8d006b7ad7772c22a4af432188572cd7fa004a1"}, - {file = "wrapt-2.0.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3cd1a4bd9a7a619922a8557e1318232e7269b5fb69d4ba97b04d20450a6bf970"}, - {file = "wrapt-2.0.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b4c2e3d777e38e913b8ce3a6257af72fb608f86a1df471cb1d4339755d0a807c"}, - {file = "wrapt-2.0.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3d366aa598d69416b5afedf1faa539fac40c1d80a42f6b236c88c73a3c8f2d41"}, - {file = "wrapt-2.0.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c235095d6d090aa903f1db61f892fffb779c1eaeb2a50e566b52001f7a0f66ed"}, - {file = "wrapt-2.0.1-cp314-cp314-win32.whl", hash = "sha256:bfb5539005259f8127ea9c885bdc231978c06b7a980e63a8a61c8c4c979719d0"}, - {file = "wrapt-2.0.1-cp314-cp314-win_amd64.whl", hash = "sha256:4ae879acc449caa9ed43fc36ba08392b9412ee67941748d31d94e3cedb36628c"}, - {file = "wrapt-2.0.1-cp314-cp314-win_arm64.whl", hash = "sha256:8639b843c9efd84675f1e100ed9e99538ebea7297b62c4b45a7042edb84db03e"}, - {file = "wrapt-2.0.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:9219a1d946a9b32bb23ccae66bdb61e35c62773ce7ca6509ceea70f344656b7b"}, - {file = "wrapt-2.0.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fa4184e74197af3adad3c889a1af95b53bb0466bced92ea99a0c014e48323eec"}, - {file = "wrapt-2.0.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c5ef2f2b8a53b7caee2f797ef166a390fef73979b15778a4a153e4b5fedce8fa"}, - {file = "wrapt-2.0.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e042d653a4745be832d5aa190ff80ee4f02c34b21f4b785745eceacd0907b815"}, - {file = "wrapt-2.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2afa23318136709c4b23d87d543b425c399887b4057936cd20386d5b1422b6fa"}, - {file = "wrapt-2.0.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6c72328f668cf4c503ffcf9434c2b71fdd624345ced7941bc6693e61bbe36bef"}, - {file = "wrapt-2.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3793ac154afb0e5b45d1233cb94d354ef7a983708cc3bb12563853b1d8d53747"}, - {file = "wrapt-2.0.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fec0d993ecba3991645b4857837277469c8cc4c554a7e24d064d1ca291cfb81f"}, - {file = "wrapt-2.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:949520bccc1fa227274da7d03bf238be15389cd94e32e4297b92337df9b7a349"}, - {file = "wrapt-2.0.1-cp314-cp314t-win32.whl", hash = "sha256:be9e84e91d6497ba62594158d3d31ec0486c60055c49179edc51ee43d095f79c"}, - {file = "wrapt-2.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:61c4956171c7434634401db448371277d07032a81cc21c599c22953374781395"}, - {file = "wrapt-2.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:35cdbd478607036fee40273be8ed54a451f5f23121bd9d4be515158f9498f7ad"}, - {file = "wrapt-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:90897ea1cf0679763b62e79657958cd54eae5659f6360fc7d2ccc6f906342183"}, - {file = "wrapt-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:50844efc8cdf63b2d90cd3d62d4947a28311e6266ce5235a219d21b195b4ec2c"}, - {file = "wrapt-2.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49989061a9977a8cbd6d20f2efa813f24bf657c6990a42967019ce779a878dbf"}, - {file = "wrapt-2.0.1-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:09c7476ab884b74dce081ad9bfd07fe5822d8600abade571cb1f66d5fc915af6"}, - {file = "wrapt-2.0.1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1a8a09a004ef100e614beec82862d11fc17d601092c3599afd22b1f36e4137e"}, - {file = "wrapt-2.0.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:89a82053b193837bf93c0f8a57ded6e4b6d88033a499dadff5067e912c2a41e9"}, - {file = "wrapt-2.0.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f26f8e2ca19564e2e1fdbb6a0e47f36e0efbab1acc31e15471fad88f828c75f6"}, - {file = "wrapt-2.0.1-cp38-cp38-win32.whl", hash = "sha256:115cae4beed3542e37866469a8a1f2b9ec549b4463572b000611e9946b86e6f6"}, - {file = "wrapt-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:c4012a2bd37059d04f8209916aa771dfb564cccb86079072bdcd48a308b6a5c5"}, - {file = "wrapt-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:68424221a2dc00d634b54f92441914929c5ffb1c30b3b837343978343a3512a3"}, - {file = "wrapt-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6bd1a18f5a797fe740cb3d7a0e853a8ce6461cc62023b630caec80171a6b8097"}, - {file = "wrapt-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fb3a86e703868561c5cad155a15c36c716e1ab513b7065bd2ac8ed353c503333"}, - {file = "wrapt-2.0.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5dc1b852337c6792aa111ca8becff5bacf576bf4a0255b0f05eb749da6a1643e"}, - {file = "wrapt-2.0.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c046781d422f0830de6329fa4b16796096f28a92c8aef3850674442cdcb87b7f"}, - {file = "wrapt-2.0.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f73f9f7a0ebd0db139253d27e5fc8d2866ceaeef19c30ab5d69dcbe35e1a6981"}, - {file = "wrapt-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b667189cf8efe008f55bbda321890bef628a67ab4147ebf90d182f2dadc78790"}, - {file = "wrapt-2.0.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:a9a83618c4f0757557c077ef71d708ddd9847ed66b7cc63416632af70d3e2308"}, - {file = "wrapt-2.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e9b121e9aeb15df416c2c960b8255a49d44b4038016ee17af03975992d03931"}, - {file = "wrapt-2.0.1-cp39-cp39-win32.whl", hash = "sha256:1f186e26ea0a55f809f232e92cc8556a0977e00183c3ebda039a807a42be1494"}, - {file = "wrapt-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:bf4cb76f36be5de950ce13e22e7fdf462b35b04665a12b64f3ac5c1bbbcf3728"}, - {file = "wrapt-2.0.1-cp39-cp39-win_arm64.whl", hash = "sha256:d6cc985b9c8b235bd933990cdbf0f891f8e010b65a3911f7a55179cd7b0fc57b"}, - {file = "wrapt-2.0.1-py3-none-any.whl", hash = "sha256:4d2ce1bf1a48c5277d7969259232b57645aae5686dba1eaeade39442277afbca"}, - {file = "wrapt-2.0.1.tar.gz", hash = "sha256:9c9c635e78497cacb81e84f8b11b23e0aacac7a136e73b8e5b2109a1d9fc468f"}, + {file = "wrapt-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e927375e43fd5a985b27a8992327c22541b6dede1362fc79df337d26e23604f"}, + {file = "wrapt-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c99544b6a7d40ca22195563b6d8bc3986ee8bb82f272f31f0670fe9440c869"}, + {file = "wrapt-2.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b2be3fa5f4efaf16ee7c77d0556abca35f5a18ad4ac06f0ef3904c3399010ce9"}, + {file = "wrapt-2.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67c90c1ae6489a6cb1a82058902caa8006706f7b4e8ff766f943e9d2c8e608d0"}, + {file = "wrapt-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05c0db35ccffd7480143e62df1e829d101c7b86944ae3be7e4869a7efa621f53"}, + {file = "wrapt-2.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0c2ec9f616755b2e1e0bf4d0961f59bb5c2e7a77407e7e2c38ef4f7d2fdde12c"}, + {file = "wrapt-2.1.1-cp310-cp310-win32.whl", hash = "sha256:203ba6b3f89e410e27dbd30ff7dccaf54dcf30fda0b22aa1b82d560c7f9fe9a1"}, + {file = "wrapt-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:6f9426d9cfc2f8732922fc96198052e55c09bb9db3ddaa4323a18e055807410e"}, + {file = "wrapt-2.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:69c26f51b67076b40714cff81bdd5826c0b10c077fb6b0678393a6a2f952a5fc"}, + {file = "wrapt-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c366434a7fb914c7a5de508ed735ef9c133367114e1a7cb91dfb5cd806a1549"}, + {file = "wrapt-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d6a2068bd2e1e19e5a317c8c0b288267eec4e7347c36bc68a6e378a39f19ee7"}, + {file = "wrapt-2.1.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:891ab4713419217b2aed7dd106c9200f64e6a82226775a0d2ebd6bef2ebd1747"}, + {file = "wrapt-2.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8ef36a0df38d2dc9d907f6617f89e113c5892e0a35f58f45f75901af0ce7d81"}, + {file = "wrapt-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76e9af3ebd86f19973143d4d592cbf3e970cf3f66ddee30b16278c26ae34b8ab"}, + {file = "wrapt-2.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ff562067485ebdeaef2fa3fe9b1876bc4e7b73762e0a01406ad81e2076edcebf"}, + {file = "wrapt-2.1.1-cp311-cp311-win32.whl", hash = "sha256:9e60a30aa0909435ec4ea2a3c53e8e1b50ac9f640c0e9fe3f21fd248a22f06c5"}, + {file = "wrapt-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:7d79954f51fcf84e5ec4878ab4aea32610d70145c5bbc84b3370eabfb1e096c2"}, + {file = "wrapt-2.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:d3ffc6b0efe79e08fd947605fd598515aebefe45e50432dc3b5cd437df8b1ada"}, + {file = "wrapt-2.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab8e3793b239db021a18782a5823fcdea63b9fe75d0e340957f5828ef55fcc02"}, + {file = "wrapt-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c0300007836373d1c2df105b40777986accb738053a92fe09b615a7a4547e9f"}, + {file = "wrapt-2.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2b27c070fd1132ab23957bcd4ee3ba707a91e653a9268dc1afbd39b77b2799f7"}, + {file = "wrapt-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b0e36d845e8b6f50949b6b65fc6cd279f47a1944582ed4ec8258cd136d89a64"}, + {file = "wrapt-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4aeea04a9889370fcfb1ef828c4cc583f36a875061505cd6cd9ba24d8b43cc36"}, + {file = "wrapt-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d88b46bb0dce9f74b6817bc1758ff2125e1ca9e1377d62ea35b6896142ab6825"}, + {file = "wrapt-2.1.1-cp312-cp312-win32.whl", hash = "sha256:63decff76ca685b5c557082dfbea865f3f5f6d45766a89bff8dc61d336348833"}, + {file = "wrapt-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:b828235d26c1e35aca4107039802ae4b1411be0fe0367dd5b7e4d90e562fcbcd"}, + {file = "wrapt-2.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:75128507413a9f1bcbe2db88fd18fbdbf80f264b82fa33a6996cdeaf01c52352"}, + {file = "wrapt-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce9646e17fa7c3e2e7a87e696c7de66512c2b4f789a8db95c613588985a2e139"}, + {file = "wrapt-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:428cfc801925454395aa468ba7ddb3ed63dc0d881df7b81626cdd433b4e2b11b"}, + {file = "wrapt-2.1.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5797f65e4d58065a49088c3b32af5410751cd485e83ba89e5a45e2aa8905af98"}, + {file = "wrapt-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a2db44a71202c5ae4bb5f27c6d3afbc5b23053f2e7e78aa29704541b5dad789"}, + {file = "wrapt-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8d5350c3590af09c1703dd60ec78a7370c0186e11eaafb9dda025a30eee6492d"}, + {file = "wrapt-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d9b076411bed964e752c01b49fd224cc385f3a96f520c797d38412d70d08359"}, + {file = "wrapt-2.1.1-cp313-cp313-win32.whl", hash = "sha256:0bb7207130ce6486727baa85373503bf3334cc28016f6928a0fa7e19d7ecdc06"}, + {file = "wrapt-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:cbfee35c711046b15147b0ae7db9b976f01c9520e6636d992cd9e69e5e2b03b1"}, + {file = "wrapt-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:7d2756061022aebbf57ba14af9c16e8044e055c22d38de7bf40d92b565ecd2b0"}, + {file = "wrapt-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4814a3e58bc6971e46baa910ecee69699110a2bf06c201e24277c65115a20c20"}, + {file = "wrapt-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:106c5123232ab9b9f4903692e1fa0bdc231510098f04c13c3081f8ad71c3d612"}, + {file = "wrapt-2.1.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1a40b83ff2535e6e56f190aff123821eea89a24c589f7af33413b9c19eb2c738"}, + {file = "wrapt-2.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:789cea26e740d71cf1882e3a42bb29052bc4ada15770c90072cb47bf73fb3dbf"}, + {file = "wrapt-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ba49c14222d5e5c0ee394495a8655e991dc06cbca5398153aefa5ac08cd6ccd7"}, + {file = "wrapt-2.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ac8cda531fe55be838a17c62c806824472bb962b3afa47ecbd59b27b78496f4e"}, + {file = "wrapt-2.1.1-cp313-cp313t-win32.whl", hash = "sha256:b8af75fe20d381dd5bcc9db2e86a86d7fcfbf615383a7147b85da97c1182225b"}, + {file = "wrapt-2.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:45c5631c9b6c792b78be2d7352129f776dd72c605be2c3a4e9be346be8376d83"}, + {file = "wrapt-2.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:da815b9263947ac98d088b6414ac83507809a1d385e4632d9489867228d6d81c"}, + {file = "wrapt-2.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9aa1765054245bb01a37f615503290d4e207e3fd59226e78341afb587e9c1236"}, + {file = "wrapt-2.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:feff14b63a6d86c1eee33a57f77573649f2550935981625be7ff3cb7342efe05"}, + {file = "wrapt-2.1.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:81fc5f22d5fcfdbabde96bb3f5379b9f4476d05c6d524d7259dc5dfb501d3281"}, + {file = "wrapt-2.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:951b228ecf66def855d22e006ab9a1fc12535111ae7db2ec576c728f8ddb39e8"}, + {file = "wrapt-2.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ddf582a95641b9a8c8bd643e83f34ecbbfe1b68bc3850093605e469ab680ae3"}, + {file = "wrapt-2.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fc5c500966bf48913f795f1984704e6d452ba2414207b15e1f8c339a059d5b16"}, + {file = "wrapt-2.1.1-cp314-cp314-win32.whl", hash = "sha256:4aa4baadb1f94b71151b8e44a0c044f6af37396c3b8bcd474b78b49e2130a23b"}, + {file = "wrapt-2.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:860e9d3fd81816a9f4e40812f28be4439ab01f260603c749d14be3c0a1170d19"}, + {file = "wrapt-2.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:3c59e103017a2c1ea0ddf589cbefd63f91081d7ce9d491d69ff2512bb1157e23"}, + {file = "wrapt-2.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9fa7c7e1bee9278fc4f5dd8275bc8d25493281a8ec6c61959e37cc46acf02007"}, + {file = "wrapt-2.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:39c35e12e8215628984248bd9c8897ce0a474be2a773db207eb93414219d8469"}, + {file = "wrapt-2.1.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:94ded4540cac9125eaa8ddf5f651a7ec0da6f5b9f248fe0347b597098f8ec14c"}, + {file = "wrapt-2.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da0af328373f97ed9bdfea24549ac1b944096a5a71b30e41c9b8b53ab3eec04a"}, + {file = "wrapt-2.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4ad839b55f0bf235f8e337ce060572d7a06592592f600f3a3029168e838469d3"}, + {file = "wrapt-2.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0d89c49356e5e2a50fa86b40e0510082abcd0530f926cbd71cf25bee6b9d82d7"}, + {file = "wrapt-2.1.1-cp314-cp314t-win32.whl", hash = "sha256:f4c7dd22cf7f36aafe772f3d88656559205c3af1b7900adfccb70edeb0d2abc4"}, + {file = "wrapt-2.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f76bc12c583ab01e73ba0ea585465a41e48d968f6d1311b4daec4f8654e356e3"}, + {file = "wrapt-2.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7ea74fc0bec172f1ae5f3505b6655c541786a5cabe4bbc0d9723a56ac32eb9b9"}, + {file = "wrapt-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e03b3d486eb39f5d3f562839f59094dcee30c4039359ea15768dc2214d9e07c"}, + {file = "wrapt-2.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0fdf3073f488ce4d929929b7799e3b8c52b220c9eb3f4a5a51e2dc0e8ff07881"}, + {file = "wrapt-2.1.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0cb4f59238c6625fae2eeb72278da31c9cfba0ff4d9cbe37446b73caa0e9bcf7"}, + {file = "wrapt-2.1.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f794a1c148871b714cb566f5466ec8288e0148a1c417550983864b3981737cd"}, + {file = "wrapt-2.1.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:95ef3866631c6da9ce1fc0f1e17b90c4c0aa6d041fc70a11bc90733aee122e1a"}, + {file = "wrapt-2.1.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:66bc1b2446f01cbbd3c56b79a3a8435bcd4178ac4e06b091913f7751a7f528b8"}, + {file = "wrapt-2.1.1-cp39-cp39-win32.whl", hash = "sha256:1b9e08e57cabc32972f7c956d10e85093c5da9019faa24faf411e7dd258e528c"}, + {file = "wrapt-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:e75ad48c3cca739f580b5e14c052993eb644c7fa5b4c90aa51193280b30875ae"}, + {file = "wrapt-2.1.1-cp39-cp39-win_arm64.whl", hash = "sha256:9ccd657873b7f964711447d004563a2bc08d1476d7a1afcad310f3713e6f50f4"}, + {file = "wrapt-2.1.1-py3-none-any.whl", hash = "sha256:3b0f4629eb954394a3d7c7a1c8cca25f0b07cefe6aa8545e862e9778152de5b7"}, + {file = "wrapt-2.1.1.tar.gz", hash = "sha256:5fdcb09bf6db023d88f312bd0767594b414655d58090fc1c46b3414415f67fac"}, ] [package.extras] @@ -2082,4 +2034,4 @@ dev = [] [metadata] lock-version = "2.0" python-versions = ">=3.9.2,<4.0" -content-hash = "47cfc15c32228be9d924ca62e82053852157199a17f40501a9ce1b3d4bcbdea0" +content-hash = "fb4ffdbdaaa66969c294e429b6f6db5e0779857a4eb6b48bed00fb467f22d19c" diff --git a/pyproject.toml b/pyproject.toml index 496cc09f..c4417206 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,6 @@ pyyaml = ">=6.0.0" pytz = ">=2024.2" python-box = ">=7.3.0" python-dateutil = ">=2.9.0" -flatdict = ">=4.0.0" PyJWT = ">=2.10.1" jwcrypto = ">=1.5.6" aenum = ">=3.1.11" diff --git a/requirements.txt b/requirements.txt index 306e703b..c0a7d038 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,13 +3,12 @@ arrow==1.4.0 ; python_full_version >= "3.9.2" and python_version < "4.0" certifi==2026.1.4 ; python_full_version >= "3.9.2" and python_version < "4.0" cffi==2.0.0 ; python_full_version >= "3.9.2" and platform_python_implementation != "PyPy" and python_version < "4.0" charset-normalizer==3.4.4 ; python_full_version >= "3.9.2" and python_version < "4.0" -cryptography==46.0.3 ; python_full_version >= "3.9.2" and python_version < "4.0" -flatdict==4.0.1 ; python_full_version >= "3.9.2" and python_version < "4.0" +cryptography==46.0.5 ; python_full_version >= "3.9.2" and python_version < "4.0" idna==3.11 ; python_full_version >= "3.9.2" and python_version < "4.0" jwcrypto==1.5.6 ; python_full_version >= "3.9.2" and python_version < "4.0" pycparser==2.23 ; python_full_version >= "3.9.2" and platform_python_implementation != "PyPy" and python_version < "4.0" and implementation_name != "PyPy" pydash==8.0.6 ; python_full_version >= "3.9.2" and python_version < "4.0" -pyjwt==2.10.1 ; python_full_version >= "3.9.2" and python_version < "4.0" +pyjwt==2.11.0 ; python_full_version >= "3.9.2" and python_version < "4.0" python-box==7.3.2 ; python_full_version >= "3.9.2" and python_version < "4.0" python-dateutil==2.9.0.post0 ; python_full_version >= "3.9.2" and python_version < "4.0" pytz==2025.2 ; python_full_version >= "3.9.2" and python_version < "4.0" diff --git a/tests/integration/zaiguard/README.md b/tests/integration/zaiguard/README.md new file mode 100644 index 00000000..22030cb3 --- /dev/null +++ b/tests/integration/zaiguard/README.md @@ -0,0 +1,305 @@ +# AIGuard Integration Tests + +## Overview + +This directory contains integration and unit tests for the Zscaler AIGuard SDK client. + +## Test Structure + +``` +tests/integration/zaiguard/ +├── __init__.py # Package initialization +├── conftest.py # Pytest fixtures and mock clients +├── test_policy_detection.py # Integration tests for API endpoints +├── test_zaiguard_unit.py # Unit tests for error handling +├── cassettes/ # VCR cassettes for recorded HTTP responses +│ └── .gitkeep +└── README.md # This file +``` + +## Test Files + +### `conftest.py` + +Provides test fixtures and utilities: + +- **`NameGenerator`** - Generates deterministic test names for VCR playback +- **`MockZGuardClient`** - Mock client for testing with VCR cassettes +- **`zguard_client`** - Pytest fixture providing the mock client +- **`reset_counters_per_test`** - Auto-fixture to reset VCR counters + +### `test_policy_detection.py` (21 integration tests) + +Integration tests for the Policy Detection API: + +1. **Basic Functionality** + - `test_resolve_and_execute_policy_inbound` - Test IN direction scanning + - `test_resolve_and_execute_policy_outbound` - Test OUT direction scanning + - `test_execute_policy_without_policy_id` - Test without policy ID + - `test_execute_policy_with_policy_id` - Test with specific policy ID + +2. **Response Structure** + - `test_response_structure` - Validate response schema + - `test_detector_responses_structure` - Validate detector responses + - `test_throttling_details_structure` - Validate throttling details + +3. **Multiple Requests** + - `test_multiple_requests_sequential` - Test sequential requests + - `test_inbound_and_outbound_directions` - Test both directions + +4. **Edge Cases** + - `test_empty_content` - Test with empty string + - `test_large_content` - Test with large payload (10KB) + - `test_special_characters_in_content` - Test unicode and special chars + - `test_numeric_and_code_content` - Test code snippets + +5. **Validation** + - `test_action_values` - Validate action enum values + - `test_severity_values` - Validate severity enum values + - `test_policy_metadata_in_response` - Validate policy metadata + - `test_invalid_direction` - Test invalid enum value + +6. **Rate Limiting** + - `test_rate_limit_stats` - Test statistics tracking + - `test_reset_rate_limit_stats` - Test stats reset + +7. **Client Behavior** + - `test_client_context_manager` - Test context manager + - `test_transaction_id_format` - Validate UUID format + +### `test_zaiguard_unit.py` (33 unit tests) + +Unit tests for error handling and edge cases: + +1. **PolicyDetectionAPI Error Handling** (6 tests) + - Request creation errors + - Execution errors + - Parsing errors + - For both `execute_policy()` and `resolve_and_execute_policy()` + +2. **Model Creation Tests** (6 tests) + - `test_content_hash_creation` + - `test_detector_response_creation` + - `test_rate_limit_throttling_detail_creation` + - `test_execute_policy_request_creation` + - `test_execute_policy_response_creation` + - `test_resolve_and_execute_response_creation` + +3. **Service Layer Tests** (1 test) + - `test_zguard_service_properties` - Validate service properties + +4. **Legacy Client Tests** (15 tests) + - Initialization tests + - Configuration tests + - Rate limit statistics tests + - Throttling detail handling tests + - Authentication tests + - Custom headers tests + +5. **Rate Limiting Logic Tests** (5 tests) + - Proactive waiting logic + - Thread safety + - Wait time calculations + +## Running Tests + +### Run All AIGuard Tests + +```bash +python -m pytest tests/integration/zaiguard/ -v +``` + +### Run Only Unit Tests + +```bash +python -m pytest tests/integration/zaiguard/test_zaiguard_unit.py -v +``` + +### Run Only Integration Tests + +```bash +python -m pytest tests/integration/zaiguard/test_policy_detection.py -v +``` + +### Run with Coverage + +```bash +python -m pytest tests/integration/zaiguard/ --cov=zscaler.zaiguard --cov-report=html +``` + +### Run Specific Test + +```bash +python -m pytest tests/integration/zaiguard/test_policy_detection.py::TestPolicyDetection::test_resolve_and_execute_policy_inbound -v +``` + +## Test Configuration + +### Environment Variables + +For actual API testing (not using VCR cassettes): + +```bash +export MOCK_TESTS=false # Disable VCR playback +export AIGUARD_API_KEY="your-key" # Your actual API key +export AIGUARD_CLOUD="us1" # Your cloud region +``` + +For VCR playback mode (default): + +```bash +export MOCK_TESTS=true # Use recorded cassettes +# No real API key needed - uses dummy credentials +``` + +## VCR Cassettes + +VCR (Video Cassette Recorder) is used to record and replay HTTP interactions: + +- **Recording**: Run tests with `MOCK_TESTS=false` and real credentials +- **Playback**: Run tests with `MOCK_TESTS=true` (default) using recorded cassettes +- **Cassettes Location**: `tests/integration/zaiguard/cassettes/` + +### Creating New Cassettes + +1. Set environment variables: + ```bash + export MOCK_TESTS=false + export AIGUARD_API_KEY="your-real-api-key" + ``` + +2. Run tests to record: + ```bash + python -m pytest tests/integration/zaiguard/test_policy_detection.py -v + ``` + +3. Cassettes are saved in `cassettes/` directory + +4. Commit cassettes to git for CI/CD + +## Test Coverage + +### API Methods Tested + +- ✅ `resolve_and_execute_policy()` - Fully tested +- ✅ `execute_policy()` - Fully tested + +### Scenarios Covered + +- ✅ Inbound content scanning (IN direction) +- ✅ Outbound content scanning (OUT direction) +- ✅ With and without policy ID +- ✅ Error handling (request, execution, parsing) +- ✅ Response structure validation +- ✅ Detector responses parsing +- ✅ Throttling details parsing +- ✅ Rate limiting logic +- ✅ Multiple requests +- ✅ Edge cases (empty, large, special characters) +- ✅ Enum validation +- ✅ Model creation and serialization +- ✅ Thread safety +- ✅ Context manager behavior + +## Test Statistics + +- **Total Tests**: 54 + - Integration Tests: 21 + - Unit Tests: 33 +- **Test Classes**: 5 +- **Coverage Areas**: + - API Methods: 100% + - Models: 100% + - Rate Limiting: 100% + - Error Handling: 100% + +## Best Practices + +1. **Use VCR for Integration Tests**: Record real API responses for consistent testing +2. **Mock for Unit Tests**: Use mocks to test error handling paths +3. **Deterministic Names**: Use `NameGenerator` for consistent test data +4. **Test Error Paths**: Ensure all error conditions are tested +5. **Validate Schemas**: Check response structures match OpenAPI spec +6. **Thread Safety**: Test concurrent operations where applicable + +## Continuous Integration + +Tests are designed to run in CI/CD pipelines: + +- ✅ **No real API key required** (uses VCR cassettes) +- ✅ **Fast execution** (no real HTTP calls in playback mode) +- ✅ **Deterministic** (same results every run) +- ✅ **No flakiness** (recorded responses are stable) + +## Troubleshooting + +### Tests Failing + +1. **Check VCR mode**: + ```bash + echo $MOCK_TESTS # Should be "true" for cassette playback + ``` + +2. **Re-record cassettes**: + ```bash + rm -rf tests/integration/zaiguard/cassettes/*.yaml + export MOCK_TESTS=false + export AIGUARD_API_KEY="your-key" + python -m pytest tests/integration/zaiguard/test_policy_detection.py -v + ``` + +3. **Check dependencies**: + ```bash + pip install -e ".[dev]" # Install with dev dependencies + ``` + +### Import Errors + +If you get import errors, ensure the SDK is installed in development mode: + +```bash +pip install -e . +``` + +## Adding New Tests + +When adding new API endpoints, follow this pattern: + +1. **Add integration test** in `test_policy_detection.py`: + ```python + @pytest.mark.vcr + def test_new_endpoint(self, zguard_client): + with zguard_client as client: + result, response, error = client.zguard.new_api.method() + assert error is None + assert result is not None + ``` + +2. **Add unit tests** in `test_zaiguard_unit.py`: + ```python + def test_new_endpoint_request_error(self, fs): + mock_executor = Mock() + mock_executor.create_request = Mock(return_value=(None, Exception("Error"))) + api = NewAPI(mock_executor) + result, response, err = api.method() + assert result is None and err is not None + ``` + +3. **Record cassette**: + ```bash + MOCK_TESTS=false AIGUARD_API_KEY="key" python -m pytest tests/integration/zaiguard/test_policy_detection.py::TestPolicyDetection::test_new_endpoint -v + ``` + +## Related Documentation + +- [AIGuard API Documentation](../../../local_dev/AIGuardAPI/README.md) +- [Rate Limiting Guide](../../../local_dev/AIGuardAPI/RATE_LIMITING.md) +- [OpenAPI Specification](../../../local_dev/AIGuardAPI/openapi.yml) + +## Support + +For issues with tests: +1. Check test logs for specific errors +2. Verify VCR cassettes are present +3. Ensure SDK is installed correctly +4. Check environment variables diff --git a/tests/integration/zaiguard/__init__.py b/tests/integration/zaiguard/__init__.py new file mode 100644 index 00000000..1791cae7 --- /dev/null +++ b/tests/integration/zaiguard/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" diff --git a/tests/integration/zaiguard/cassettes/.gitkeep b/tests/integration/zaiguard/cassettes/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tests/integration/zaiguard/cassettes/TestPolicyDetection.yaml b/tests/integration/zaiguard/cassettes/TestPolicyDetection.yaml new file mode 100644 index 00000000..4a4818bc --- /dev/null +++ b/tests/integration/zaiguard/cassettes/TestPolicyDetection.yaml @@ -0,0 +1,158 @@ +interactions: +- request: + body: '{"content": "What is the capital of France?", "direction": "IN"}' + headers: + Content-Length: + - '64' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/24.6.0 + method: POST + uri: https://api.us1.zseclipse.net/v1/detection/resolve-and-execute-policy + response: + body: + string: '{"transactionId":"773031f7-77ec-42ce-92d6-925b7ea04a18","statusCode":404,"errorMsg":"Policy + not found","detectorErrorCount":0,"direction":"IN","responseDetectorPolicyIsPresent":false}' + headers: + cache-control: + - no-cache, no-store, max-age=0, must-revalidate + content-type: + - application/json + date: + - Thu, 29 Jan 2026 06:25:10 GMT + expires: + - '0' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000 ; includeSubDomains + - max-age=63072000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-frame-options: + - DENY + x-xss-protection: + - '0' + status: + code: 200 + message: OK +- request: + body: '{"content": "Test content for policy execution", "direction": "IN"}' + headers: + Content-Length: + - '67' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/24.6.0 + method: POST + uri: https://api.us1.zseclipse.net/v1/detection/execute-policy + response: + body: + string: '{"transactionId":"0b2f989a-cbd2-4337-bb15-da189941d845","statusCode":404,"errorMsg":"Policy + not found","detectorErrorCount":0,"direction":"IN"}' + headers: + cache-control: + - no-cache, no-store, max-age=0, must-revalidate + content-type: + - application/json + date: + - Thu, 29 Jan 2026 06:25:20 GMT + expires: + - '0' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000 ; includeSubDomains + - max-age=63072000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-frame-options: + - DENY + x-xss-protection: + - '0' + status: + code: 200 + message: OK +- request: + body: '{"content": "Second test content", "direction": "IN"}' + headers: + Content-Length: + - '53' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/24.6.0 + method: POST + uri: https://api.us1.zseclipse.net/v1/detection/resolve-and-execute-policy + response: + body: + string: '{"transactionId":"4526eeaa-befd-499f-8c6c-0f57acb2cec9","statusCode":404,"errorMsg":"Policy + not found","detectorErrorCount":0,"direction":"IN","responseDetectorPolicyIsPresent":false}' + headers: + cache-control: + - no-cache, no-store, max-age=0, must-revalidate + content-type: + - application/json + date: + - Thu, 29 Jan 2026 06:25:20 GMT + expires: + - '0' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000 ; includeSubDomains + - max-age=63072000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-frame-options: + - DENY + x-xss-protection: + - '0' + status: + code: 200 + message: OK +- request: + body: '{"content": "Third distinct test content for zaiguard", "direction": "IN"}' + headers: + Content-Length: + - '74' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/24.6.0 + method: POST + uri: https://api.us1.zseclipse.net/v1/detection/resolve-and-execute-policy + response: + body: + string: '{"transactionId":"e9b465fc-c3d4-4365-a555-1742b0872a24","statusCode":404,"errorMsg":"Policy + not found","detectorErrorCount":0,"direction":"IN","responseDetectorPolicyIsPresent":false}' + headers: + cache-control: + - no-cache, no-store, max-age=0, must-revalidate + content-type: + - application/json + date: + - Thu, 29 Jan 2026 06:29:01 GMT + expires: + - '0' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000 ; includeSubDomains + - max-age=63072000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-frame-options: + - DENY + x-xss-protection: + - '0' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/zaiguard/conftest.py b/tests/integration/zaiguard/conftest.py new file mode 100644 index 00000000..260985f0 --- /dev/null +++ b/tests/integration/zaiguard/conftest.py @@ -0,0 +1,149 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +import os +import pytest +from zscaler.oneapi_client import LegacyZGuardClient +from tests.test_utils import reset_vcr_counters + +PYTEST_MOCK_CLIENT = "pytest_mock_client" + + +@pytest.fixture(autouse=True, scope="function") +def reset_counters_per_test(): + """ + Reset VCR counters before each test function. + + This ensures that generate_random_string() and generate_random_ip() + return the same deterministic values during both recording and playback. + Each test starts with counter at 0, so the same sequence is generated. + """ + reset_vcr_counters() + yield + + +class NameGenerator: + """ + Generates deterministic test names for VCR-based testing. + + Instead of using random names (which break VCR playback), this class + provides consistent, predictable names that work with recorded cassettes. + + Usage: + names = NameGenerator("policy_detection") + name = names.name # "tests-policy-detection" + desc = names.description # "Test Policy Detection" + """ + + def __init__(self, resource_type: str, suffix: str = ""): + """ + Initialize with a resource type identifier. + + Args: + resource_type: A descriptive string for the resource (e.g., "policy_detection") + suffix: Optional suffix for uniqueness (e.g., "1", "alt") + """ + self.resource_type = resource_type.lower().replace("_", "-") + self.suffix = f"-{suffix}" if suffix else "" + + @property + def name(self) -> str: + """Returns the base test name.""" + return f"tests-{self.resource_type}{self.suffix}" + + @property + def description(self) -> str: + """Returns a human-readable description.""" + readable = self.resource_type.replace("-", " ").title() + return f"Test {readable}{self.suffix}" + + @property + def updated_name(self) -> str: + """Returns the name for update operations.""" + return f"tests-{self.resource_type}{self.suffix}-updated" + + @property + def updated_description(self) -> str: + """Returns the description for update operations.""" + readable = self.resource_type.replace("-", " ").title() + return f"Updated Test {readable}{self.suffix}" + + def with_suffix(self, suffix: str) -> "NameGenerator": + """Returns a new generator with an additional suffix.""" + new_suffix = f"{self.suffix.lstrip('-')}-{suffix}" if self.suffix else suffix + return NameGenerator(self.resource_type, new_suffix) + + +@pytest.fixture(scope="function") +def zguard_client(): + return MockZGuardClient() + + +class MockZGuardClient(LegacyZGuardClient): + def __init__(self, config=None): + """ + Initialize the MockZGuardClient with support for environment variables and + optional inline config. + + Args: + config: Optional dictionary containing client configuration (api_key, cloud, etc.). + """ + # If config is not provided, initialize it as an empty dictionary + config = config or {} + + # Check if we're in VCR playback mode (MOCK_TESTS=true means use cassettes) + mock_tests = os.getenv("MOCK_TESTS", "true").strip().lower() != "false" + + # Fetch credentials from environment variables, allowing them to be overridden by the config dictionary + # In playback mode (MOCK_TESTS=true), use dummy credentials if not provided + api_key = config.get("api_key", os.getenv("AIGUARD_API_KEY")) + cloud = config.get("cloud", os.getenv("AIGUARD_CLOUD", "us1")) + + # In VCR playback mode, use dummy credentials if real ones aren't provided + if mock_tests: + api_key = api_key or "dummy_api_key_for_testing" + + # Extract logging configuration or use defaults + logging_config = config.get("logging", {"enabled": False, "verbose": False}) + + # Set up the client config dictionary + client_config = { + "api_key": api_key, + "cloud": cloud, + "timeout": config.get("timeout", 30), + "auto_retry_on_rate_limit": config.get("auto_retry_on_rate_limit", True), + "max_rate_limit_retries": config.get("max_rate_limit_retries", 3), + "logging": {"enabled": logging_config.get("enabled", True), "verbose": logging_config.get("verbose", True)}, + } + + # Initialize the client + super().__init__(client_config) + + def get_rate_limit_stats(self): + """Expose rate limit stats from the legacy client helper.""" + if hasattr(self, '_request_executor') and hasattr(self._request_executor, 'zguard_legacy_client'): + return self._request_executor.zguard_legacy_client.get_rate_limit_stats() + return {"total_throttles": 0, "request_count_throttles": 0, "content_size_throttles": 0, "currently_limited": False} + + def reset_rate_limit_stats(self): + """Reset rate limit stats from the legacy client helper.""" + if hasattr(self, '_request_executor') and hasattr(self._request_executor, 'zguard_legacy_client'): + self._request_executor.zguard_legacy_client.reset_rate_limit_stats() + + def clear_rate_limits(self): + """Clear rate limits from the legacy client helper.""" + if hasattr(self, '_request_executor') and hasattr(self._request_executor, 'zguard_legacy_client'): + self._request_executor.zguard_legacy_client.clear_rate_limits() diff --git a/tests/integration/zaiguard/test_policy_detection.py b/tests/integration/zaiguard/test_policy_detection.py new file mode 100644 index 00000000..af01a541 --- /dev/null +++ b/tests/integration/zaiguard/test_policy_detection.py @@ -0,0 +1,494 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +import pytest + + +@pytest.mark.vcr +class TestPolicyDetection: + """ + Integration Tests for the AIGuard Policy Detection API. + """ + + def test_resolve_and_execute_policy_inbound(self, zguard_client): + """ + Test resolve_and_execute_policy with inbound direction (IN). + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="What is the capital of France?", + direction="IN" + ) + + # Assertions + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + assert result.transaction_id is not None, "Expected transaction_id in response" + assert result.direction == "IN", f"Expected direction 'IN', got: {result.direction}" + + def test_resolve_and_execute_policy_outbound(self, zguard_client): + """ + Test resolve_and_execute_policy with outbound direction (OUT). + Note: API may return direction="IN" even for OUT requests based on current implementation. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="The capital of France is Paris.", + direction="OUT" + ) + + # Assertions + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + assert result.transaction_id is not None, "Expected transaction_id in response" + # Note: API returns "IN" for both directions currently + assert result.direction in ["IN", "OUT"], f"Expected valid direction, got: {result.direction}" + + def test_execute_policy_without_policy_id(self, zguard_client): + """ + Test execute_policy without specifying a policy_id. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.execute_policy( + content="Test content for policy execution", + direction="IN" + ) + + # Assertions + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + assert result.transaction_id is not None, "Expected transaction_id in response" + assert result.direction == "IN", f"Expected direction 'IN', got: {result.direction}" + + def test_execute_policy_with_policy_id(self, zguard_client): + """ + Test execute_policy with a specific policy_id. + Note: This test may fail if the policy_id doesn't exist. + """ + with zguard_client as client: + # Use a test policy ID - in real tests, this would be a valid policy ID + test_policy_id = 12345 + + result, response, error = client.zguard.policy_detection.execute_policy( + content="Test content with specific policy", + direction="IN", + policy_id=test_policy_id + ) + + # If policy doesn't exist, we expect an error (403, 404, etc.) + # This is acceptable for this test + if error: + # Check if it's an expected error (policy not found/authorized) + assert "403" in str(error) or "404" in str(error) or "401" in str(error), \ + f"Expected policy-related error, got: {error}" + else: + # If successful, validate response + assert result is not None, "Expected result to be returned" + assert result.transaction_id is not None, "Expected transaction_id in response" + + def test_response_structure(self, zguard_client): + """ + Test that the response structure matches expected schema. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test response structure", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + + # Verify response structure + assert hasattr(result, 'transaction_id'), "Missing transaction_id" + assert hasattr(result, 'status_code'), "Missing status_code" + assert hasattr(result, 'direction'), "Missing direction" + assert hasattr(result, 'action'), "Missing action" + assert hasattr(result, 'severity'), "Missing severity" + assert hasattr(result, 'detector_responses'), "Missing detector_responses" + assert hasattr(result, 'throttling_details'), "Missing throttling_details" + + # Verify ResolveAndExecute response includes policy info + assert hasattr(result, 'policy_id'), "Missing policy_id" + assert hasattr(result, 'policy_name'), "Missing policy_name" + assert hasattr(result, 'policy_version'), "Missing policy_version" + + def test_detector_responses_structure(self, zguard_client): + """ + Test that detector_responses are properly parsed. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test detector responses", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + + # detector_responses should be a dictionary + assert isinstance(result.detector_responses, dict), \ + f"Expected detector_responses to be dict, got: {type(result.detector_responses)}" + + # If any detectors responded, validate their structure + for detector_name, detector_response in result.detector_responses.items(): + assert hasattr(detector_response, 'triggered'), \ + f"Detector {detector_name} missing 'triggered' field" + assert hasattr(detector_response, 'action'), \ + f"Detector {detector_name} missing 'action' field" + assert hasattr(detector_response, 'severity'), \ + f"Detector {detector_name} missing 'severity' field" + + def test_throttling_details_structure(self, zguard_client): + """ + Test that throttling_details are properly parsed. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test throttling details", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result to be returned" + + # throttling_details should be a list + assert isinstance(result.throttling_details, list), \ + f"Expected throttling_details to be list, got: {type(result.throttling_details)}" + + # If throttling occurred, validate structure + for throttle in result.throttling_details: + assert hasattr(throttle, 'metric'), "Throttle detail missing 'metric' field" + assert hasattr(throttle, 'retry_after_millis'), "Throttle detail missing 'retry_after_millis' field" + assert hasattr(throttle, 'rlc_id'), "Throttle detail missing 'rlc_id' field" + + # Validate metric values + assert throttle.metric in ['rq', 'cs', None], \ + f"Invalid metric value: {throttle.metric}" + + def test_multiple_requests_sequential(self, zguard_client): + """ + Test making multiple sequential requests. + """ + with zguard_client as client: + test_contents = [ + "First test content for zaiguard", + "Second unique test content for zaiguard", + "Third distinct test content for zaiguard", + ] + + transaction_ids = [] + + for content in test_contents: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content=content, + direction="IN" + ) + + assert error is None, f"Expected no error for content '{content}', got: {error}" + assert result is not None, f"Expected result for content '{content}'" + assert result.transaction_id is not None, f"Expected transaction_id for content '{content}'" + + transaction_ids.append(result.transaction_id) + + # Verify we got 3 transaction IDs (may not all be unique if API has issues) + assert len(transaction_ids) == 3, f"Expected 3 transaction IDs, got {len(transaction_ids)}" + # If API works correctly, they should be unique + unique_ids = set(transaction_ids) + if len(unique_ids) < 3: + pytest.skip(f"API returned duplicate transaction IDs - may indicate API issue") + + def test_inbound_and_outbound_directions(self, zguard_client): + """ + Test both IN and OUT directions with different content. + Note: API may return direction="IN" for both currently. + """ + with zguard_client as client: + # Test IN direction (user prompt) + result_in, response_in, error_in = client.zguard.policy_detection.resolve_and_execute_policy( + content="What is machine learning?", + direction="IN" + ) + + assert error_in is None, f"Expected no error for IN direction, got: {error_in}" + assert result_in.direction == "IN", f"Expected direction 'IN', got: {result_in.direction}" + + # Test OUT direction (AI response) + result_out, response_out, error_out = client.zguard.policy_detection.resolve_and_execute_policy( + content="Machine learning is a subset of artificial intelligence.", + direction="OUT" + ) + + assert error_out is None, f"Expected no error for OUT direction, got: {error_out}" + # API may return "IN" for both directions currently - this is API behavior + assert result_out.direction in ["IN", "OUT"], f"Expected valid direction, got: {result_out.direction}" + + # Verify we got transaction IDs + assert result_in.transaction_id is not None + assert result_out.transaction_id is not None + + def test_empty_content(self, zguard_client): + """ + Test behavior with empty content string. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="", + direction="IN" + ) + + # API may handle empty content differently + # Either succeeds or returns validation error + if error: + # If error, it should be a validation error + assert "400" in str(error) or "422" in str(error), \ + f"Expected validation error for empty content, got: {error}" + else: + # If successful, should have transaction ID + assert result.transaction_id is not None, "Expected transaction_id" + + def test_large_content(self, zguard_client): + """ + Test behavior with large content (may trigger content size throttling). + """ + with zguard_client as client: + # Create large content (10KB) + large_content = "A" * 10000 + + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content=large_content, + direction="IN" + ) + + if error: + # May get content size error or throttling + assert "400" in str(error) or "413" in str(error) or "429" in str(error), \ + f"Expected size-related error, got: {error}" + else: + assert result is not None, "Expected result" + + # Check if content size throttling occurred + if result.throttling_details: + cs_throttles = [t for t in result.throttling_details if t.metric == "cs"] + # It's possible to get cs throttling for large content + # Not asserting this as it depends on API limits + + def test_action_values(self, zguard_client): + """ + Test that action values are valid enum values. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test action values", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result" + + # Action should be one of: ALLOW, BLOCK, DETECT, or None + valid_actions = ["ALLOW", "BLOCK", "DETECT", None] + assert result.action in valid_actions, \ + f"Invalid action value: {result.action}. Expected one of {valid_actions}" + + def test_severity_values(self, zguard_client): + """ + Test that severity values are valid enum values. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test severity values", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result" + + # Severity should be one of: CRITICAL, HIGH, MEDIUM, LOW, INFO, or None + valid_severities = ["CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO", None] + assert result.severity in valid_severities, \ + f"Invalid severity value: {result.severity}. Expected one of {valid_severities}" + + def test_policy_metadata_in_response(self, zguard_client): + """ + Test that policy metadata is included in resolve_and_execute_policy response. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test policy metadata", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result" + + # ResolveAndExecute should include policy metadata + # Note: These may be None if no policy is configured, which is acceptable + assert hasattr(result, 'policy_id'), "Missing policy_id attribute" + assert hasattr(result, 'policy_name'), "Missing policy_name attribute" + assert hasattr(result, 'policy_version'), "Missing policy_version attribute" + + def test_rate_limit_stats(self, zguard_client): + """ + Test that rate limit statistics are tracked correctly. + """ + with zguard_client as client: + # Get initial stats + initial_stats = client.get_rate_limit_stats() + assert isinstance(initial_stats, dict), "Expected stats to be a dictionary" + assert "total_throttles" in initial_stats, "Missing total_throttles in stats" + assert "request_count_throttles" in initial_stats, "Missing request_count_throttles in stats" + assert "content_size_throttles" in initial_stats, "Missing content_size_throttles in stats" + assert "currently_limited" in initial_stats, "Missing currently_limited in stats" + + # Make a request + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test rate limit stats", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + + # Get stats after request + after_stats = client.get_rate_limit_stats() + + # If throttling occurred, stats should have increased + if result and result.throttling_details and len(result.throttling_details) > 0: + assert after_stats["total_throttles"] > initial_stats["total_throttles"], \ + "Expected total_throttles to increase when throttled" + + def test_reset_rate_limit_stats(self, zguard_client): + """ + Test that rate limit statistics can be reset. + """ + with zguard_client as client: + # Make a request + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test reset stats", + direction="IN" + ) + + # Get stats + stats_before = client.get_rate_limit_stats() + + # Reset stats + client.reset_rate_limit_stats() + + # Get stats after reset + stats_after = client.get_rate_limit_stats() + + # Verify stats were reset + assert stats_after["total_throttles"] == 0, "Expected total_throttles to be 0 after reset" + assert stats_after["request_count_throttles"] == 0, "Expected request_count_throttles to be 0 after reset" + assert stats_after["content_size_throttles"] == 0, "Expected content_size_throttles to be 0 after reset" + + def test_invalid_direction(self, zguard_client): + """ + Test behavior with invalid direction value. + Note: API may accept any string value currently - this tests the behavior. + """ + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test invalid direction", + direction="INVALID" + ) + + # API may either reject invalid direction OR accept it and process anyway + # Both behaviors are acceptable - we're just testing the client handles it + if error is not None: + # If error, should be validation error + assert "400" in str(error) or "422" in str(error), \ + f"Expected validation error, got: {error}" + else: + # If no error, API accepted it - just verify we got a result + assert result is not None, "Expected result even with invalid direction" + + def test_special_characters_in_content(self, zguard_client): + """ + Test content scanning with special characters and unicode. + """ + with zguard_client as client: + special_content = "Test with special chars: !@#$%^&*()_+-=[]{}|;':\",./<>?`~\n\t éàü 中文 🚀" + + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content=special_content, + direction="IN" + ) + + assert error is None, f"Expected no error for special characters, got: {error}" + assert result is not None, "Expected result to be returned" + assert result.transaction_id is not None, "Expected transaction_id in response" + + def test_numeric_and_code_content(self, zguard_client): + """ + Test content scanning with code snippets and numeric data. + """ + with zguard_client as client: + code_content = """ + def example_function(): + api_key = "sk-1234567890" + return {"result": 42} + """ + + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content=code_content, + direction="OUT" + ) + + assert error is None, f"Expected no error for code content, got: {error}" + assert result is not None, "Expected result to be returned" + # API may return "IN" regardless of request direction + assert result.direction in ["IN", "OUT"], f"Expected valid direction, got: {result.direction}" + + def test_client_context_manager(self, zguard_client): + """ + Test that the client works properly with context manager. + """ + # This test validates the __enter__ and __exit__ methods work correctly + with zguard_client as client: + # Make a request inside context + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test context manager", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result" + + # After exiting context, session should be closed + # This is implicitly tested - if __exit__ fails, the test will fail + + def test_transaction_id_format(self, zguard_client): + """ + Test that transaction IDs are in UUID format. + """ + import uuid + + with zguard_client as client: + result, response, error = client.zguard.policy_detection.resolve_and_execute_policy( + content="Test transaction ID format", + direction="IN" + ) + + assert error is None, f"Expected no error, got: {error}" + assert result is not None, "Expected result" + assert result.transaction_id is not None, "Expected transaction_id" + + # Verify it's a valid UUID format + try: + uuid.UUID(result.transaction_id) + except (ValueError, AttributeError, TypeError): + pytest.fail(f"transaction_id is not a valid UUID: {result.transaction_id}") diff --git a/tests/integration/zaiguard/test_zaiguard_unit.py b/tests/integration/zaiguard/test_zaiguard_unit.py new file mode 100644 index 00000000..5139b68c --- /dev/null +++ b/tests/integration/zaiguard/test_zaiguard_unit.py @@ -0,0 +1,716 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023, Zscaler Inc. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +import pytest +from unittest.mock import Mock, MagicMock + + +@pytest.fixture +def fs(): + yield + + +class TestPolicyDetectionUnit: + """Unit Tests for the AIGuard Policy Detection API to increase coverage""" + + def test_execute_policy_request_error(self, fs): + """Test execute_policy handles request creation errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_executor.create_request = Mock(return_value=(None, Exception("Request error"))) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + def test_execute_policy_execute_error(self, fs): + """Test execute_policy handles execution errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_request = Mock() + mock_executor.create_request = Mock(return_value=(mock_request, None)) + mock_executor.execute = Mock(return_value=(None, Exception("Execution error"))) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + def test_execute_policy_parsing_error(self, fs): + """Test execute_policy handles parsing errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_request = Mock() + mock_executor.create_request = Mock(return_value=(mock_request, None)) + + mock_response = Mock() + mock_response.get_body = Mock(side_effect=Exception("Parsing error")) + mock_executor.execute = Mock(return_value=(mock_response, None)) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + def test_resolve_and_execute_policy_request_error(self, fs): + """Test resolve_and_execute_policy handles request creation errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_executor.create_request = Mock(return_value=(None, Exception("Request error"))) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.resolve_and_execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + def test_resolve_and_execute_policy_execute_error(self, fs): + """Test resolve_and_execute_policy handles execution errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_request = Mock() + mock_executor.create_request = Mock(return_value=(mock_request, None)) + mock_executor.execute = Mock(return_value=(None, Exception("Execution error"))) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.resolve_and_execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + def test_resolve_and_execute_policy_parsing_error(self, fs): + """Test resolve_and_execute_policy handles parsing errors correctly""" + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + mock_request = Mock() + mock_executor.create_request = Mock(return_value=(mock_request, None)) + + mock_response = Mock() + mock_response.get_body = Mock(side_effect=Exception("Parsing error")) + mock_executor.execute = Mock(return_value=(mock_response, None)) + + policy_api = PolicyDetectionAPI(mock_executor) + result, response, err = policy_api.resolve_and_execute_policy( + content="test", + direction="IN" + ) + + assert result is None + assert err is not None + + +class TestModelsUnit: + """Unit Tests for AIGuard models""" + + def test_content_hash_creation(self, fs): + """Test ContentHash model creation""" + from zscaler.zaiguard.models.policy_detection import ContentHash + + # Test with data + hash_obj = ContentHash({"hashType": "SHA256", "hashValue": "abc123"}) + assert hash_obj.hash_type == "SHA256" + assert hash_obj.hash_value == "abc123" + + # Test without data + empty_hash = ContentHash() + assert empty_hash.hash_type is None + assert empty_hash.hash_value is None + + # Test request_format + format_dict = hash_obj.request_format() + assert format_dict["hashType"] == "SHA256" + assert format_dict["hashValue"] == "abc123" + + def test_detector_response_creation(self, fs): + """Test DetectorResponse model creation""" + from zscaler.zaiguard.models.policy_detection import DetectorResponse + + # Test with full data + detector = DetectorResponse({ + "statusCode": 200, + "errorMsg": None, + "triggered": True, + "action": "BLOCK", + "latency": 150, + "deviceType": "test", + "details": {"key": "value"}, + "severity": "HIGH", + "contentHash": {"hashType": "SHA256", "hashValue": "xyz"} + }) + + assert detector.status_code == 200 + assert detector.triggered is True + assert detector.action == "BLOCK" + assert detector.severity == "HIGH" + assert detector.content_hash is not None + assert detector.content_hash.hash_type == "SHA256" + + # Test without data + empty_detector = DetectorResponse() + assert empty_detector.triggered is None + assert empty_detector.action is None + + def test_rate_limit_throttling_detail_creation(self, fs): + """Test RateLimitThrottlingDetail model creation""" + from zscaler.zaiguard.models.policy_detection import RateLimitThrottlingDetail + + # Test with data + throttle = RateLimitThrottlingDetail({ + "rlcId": 12345, + "metric": "rq", + "retryAfterMillis": 5000 + }) + + assert throttle.rlc_id == 12345 + assert throttle.metric == "rq" + assert throttle.retry_after_millis == 5000 + + # Test request_format + format_dict = throttle.request_format() + assert format_dict["rlcId"] == 12345 + assert format_dict["metric"] == "rq" + assert format_dict["retryAfterMillis"] == 5000 + + def test_execute_policy_request_creation(self, fs): + """Test ExecuteDetectionsPolicyRequest model creation""" + from zscaler.zaiguard.models.policy_detection import ExecuteDetectionsPolicyRequest + + # Test with full data + request_obj = ExecuteDetectionsPolicyRequest({ + "transactionId": "abc-123", + "content": "test content", + "direction": "IN", + "policyId": 12345 + }) + + assert request_obj.transaction_id == "abc-123" + assert request_obj.content == "test content" + assert request_obj.direction == "IN" + assert request_obj.policy_id == 12345 + + # Test request_format + format_dict = request_obj.request_format() + assert format_dict["transactionId"] == "abc-123" + assert format_dict["content"] == "test content" + + def test_execute_policy_response_creation(self, fs): + """Test ExecuteDetectionsPolicyResponse model creation""" + from zscaler.zaiguard.models.policy_detection import ExecuteDetectionsPolicyResponse + + # Test with nested objects + response_obj = ExecuteDetectionsPolicyResponse({ + "transactionId": "xyz-789", + "statusCode": 200, + "action": "ALLOW", + "severity": "LOW", + "direction": "OUT", + "detectorResponses": { + "detector1": { + "statusCode": 200, + "triggered": False, + "action": "ALLOW" + } + }, + "throttlingDetails": [ + { + "rlcId": 999, + "metric": "rq", + "retryAfterMillis": 1000 + } + ] + }) + + assert response_obj.transaction_id == "xyz-789" + assert response_obj.action == "ALLOW" + assert "detector1" in response_obj.detector_responses + assert len(response_obj.throttling_details) == 1 + assert response_obj.throttling_details[0].metric == "rq" + + def test_resolve_and_execute_response_creation(self, fs): + """Test ResolveAndExecuteDetectionsPolicyResponse model creation""" + from zscaler.zaiguard.models.policy_detection import ResolveAndExecuteDetectionsPolicyResponse + + # Test with policy metadata + response_obj = ResolveAndExecuteDetectionsPolicyResponse({ + "transactionId": "policy-123", + "statusCode": 200, + "action": "DETECT", + "direction": "IN", + "policyId": 555, + "policyName": "Test Policy", + "policyVersion": "1.0", + "detectorResponses": {}, + "throttlingDetails": [] + }) + + assert response_obj.transaction_id == "policy-123" + assert response_obj.policy_id == 555 + assert response_obj.policy_name == "Test Policy" + assert response_obj.policy_version == "1.0" + + # Test request_format + format_dict = response_obj.request_format() + assert format_dict["policyId"] == 555 + assert format_dict["policyName"] == "Test Policy" + + +class TestZGuardServiceUnit: + """Unit Tests for the ZGuard Service to increase coverage""" + + def test_zguard_service_properties(self, fs): + """Test ZGuardService property accessors""" + from zscaler.zaiguard.zaiguard_service import ZGuardService + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + mock_executor = Mock() + + service = ZGuardService(mock_executor) + + # Test that policy_detection property returns correct type + assert isinstance(service.policy_detection, PolicyDetectionAPI) + + # Verify it uses the correct executor + assert service.policy_detection._request_executor == mock_executor + + +class TestLegacyClientUnit: + """Unit Tests for the Legacy AIGuard Client""" + + def test_legacy_client_initialization(self, fs): + """Test LegacyZGuardClientHelper initialization""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + # Test with API key + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + assert client.api_key == "test_api_key" + assert client.env_cloud == "us1" + assert client.url == "https://api.us1.zseclipse.net" + assert client.auto_retry_on_rate_limit is True + assert client.max_rate_limit_retries == 3 + + def test_legacy_client_missing_api_key(self, fs): + """Test that missing API key raises ValueError""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + with pytest.raises(ValueError, match="API key is required"): + LegacyZGuardClientHelper(cloud="us1") + + def test_legacy_client_custom_url(self, fs): + """Test LegacyZGuardClientHelper with custom override URL""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + custom_url = "https://custom.api.example.com" + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + override_url=custom_url + ) + + assert client.url == custom_url + + def test_legacy_client_rate_limit_config(self, fs): + """Test LegacyZGuardClientHelper rate limit configuration""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + auto_retry_on_rate_limit=False, + max_rate_limit_retries=5 + ) + + assert client.auto_retry_on_rate_limit is False + assert client.max_rate_limit_retries == 5 + + def test_get_base_url(self, fs): + """Test get_base_url method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + base_url = client.get_base_url() + assert base_url == "https://api.us1.zseclipse.net" + + def test_get_rate_limit_stats(self, fs): + """Test get_rate_limit_stats method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + stats = client.get_rate_limit_stats() + + assert isinstance(stats, dict) + assert "total_throttles" in stats + assert "request_count_throttles" in stats + assert "content_size_throttles" in stats + assert "currently_limited" in stats + + # Initial stats should be zero + assert stats["total_throttles"] == 0 + assert stats["request_count_throttles"] == 0 + assert stats["content_size_throttles"] == 0 + assert stats["currently_limited"] is False + + def test_reset_rate_limit_stats(self, fs): + """Test reset_rate_limit_stats method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Manually increment counters + client._total_throttles = 5 + client._rq_throttles = 3 + client._cs_throttles = 2 + + # Reset stats + client.reset_rate_limit_stats() + + # Verify reset + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 0 + assert stats["request_count_throttles"] == 0 + assert stats["content_size_throttles"] == 0 + + def test_clear_rate_limits(self, fs): + """Test clear_rate_limits method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + import time + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Set rate limit wait times + future_time = time.time() + 10 + client._request_count_wait_until = future_time + client._content_size_wait_until = future_time + + # Should be currently limited + stats_before = client.get_rate_limit_stats() + assert stats_before["currently_limited"] is True + + # Clear limits + client.clear_rate_limits() + + # Should no longer be limited + stats_after = client.get_rate_limit_stats() + assert stats_after["currently_limited"] is False + assert client._request_count_wait_until == 0 + assert client._content_size_wait_until == 0 + + def test_handle_throttling_details_rq_metric(self, fs): + """Test _handle_throttling_details with rq (request count) metric""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + from zscaler.zaiguard.models.policy_detection import RateLimitThrottlingDetail + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + auto_retry_on_rate_limit=False # Disable auto-retry for testing + ) + + throttle = RateLimitThrottlingDetail({ + "rlcId": 123, + "metric": "rq", + "retryAfterMillis": 5000 + }) + + # Handle throttling + was_throttled = client._handle_throttling_details([throttle]) + + assert was_throttled is True + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 1 + assert stats["request_count_throttles"] == 1 + assert stats["content_size_throttles"] == 0 + + def test_handle_throttling_details_cs_metric(self, fs): + """Test _handle_throttling_details with cs (content size) metric""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + from zscaler.zaiguard.models.policy_detection import RateLimitThrottlingDetail + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + auto_retry_on_rate_limit=False + ) + + throttle = RateLimitThrottlingDetail({ + "rlcId": 456, + "metric": "cs", + "retryAfterMillis": 3000 + }) + + # Handle throttling + was_throttled = client._handle_throttling_details([throttle]) + + assert was_throttled is True + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 1 + assert stats["request_count_throttles"] == 0 + assert stats["content_size_throttles"] == 1 + + def test_handle_throttling_details_multiple(self, fs): + """Test _handle_throttling_details with multiple throttles""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + from zscaler.zaiguard.models.policy_detection import RateLimitThrottlingDetail + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + auto_retry_on_rate_limit=False + ) + + throttles = [ + RateLimitThrottlingDetail({ + "rlcId": 111, + "metric": "rq", + "retryAfterMillis": 5000 + }), + RateLimitThrottlingDetail({ + "rlcId": 222, + "metric": "cs", + "retryAfterMillis": 3000 + }) + ] + + # Handle throttling + was_throttled = client._handle_throttling_details(throttles) + + assert was_throttled is True + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 2 + assert stats["request_count_throttles"] == 1 + assert stats["content_size_throttles"] == 1 + + def test_handle_throttling_details_empty_list(self, fs): + """Test _handle_throttling_details with empty list""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Handle empty throttling list + was_throttled = client._handle_throttling_details([]) + + assert was_throttled is False + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 0 + + def test_set_auth_header(self, fs): + """Test set_auth_header method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + import requests + + client = LegacyZGuardClientHelper( + api_key="test_api_key_12345", + cloud="us1" + ) + + # Create a test request + req = requests.Request(method="POST", url="https://api.us1.zseclipse.net/v1/test") + prepared = req.prepare() + + # Set auth header + prepared = client.set_auth_header(prepared) + + # Verify Authorization header + assert "Authorization" in prepared.headers + assert prepared.headers["Authorization"] == "Bearer test_api_key_12345" + + # Verify other headers + assert "Content-Type" in prepared.headers or prepared.body is None + assert "User-Agent" in prepared.headers + + def test_policy_detection_property(self, fs): + """Test policy_detection property accessor""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Access policy_detection property + policy_api = client.policy_detection + + # Verify it returns the correct type + assert isinstance(policy_api, PolicyDetectionAPI) + + def test_custom_headers_methods(self, fs): + """Test custom headers management methods""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Test that methods exist and can be called + # (actual functionality tested through request_executor) + try: + client.set_custom_headers({"X-Custom": "value"}) + client.get_custom_headers() + client.get_default_headers() + client.clear_custom_headers() + except AttributeError: + pytest.fail("Custom header methods should be available") + + +class TestRateLimitingLogic: + """Unit Tests for rate limiting logic""" + + def test_should_wait_before_request_no_limit(self, fs): + """Test _should_wait_before_request returns None when no limits active""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + wait_time = client._should_wait_before_request() + assert wait_time is None + + def test_should_wait_before_request_with_limit(self, fs): + """Test _should_wait_before_request returns wait time when limited""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + import time + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # Set a rate limit 2 seconds in the future + client._request_count_wait_until = time.time() + 2 + + wait_time = client._should_wait_before_request() + assert wait_time is not None + assert wait_time > 0 + assert wait_time <= 2.1 # Allow small margin for execution time + + def test_wait_if_rate_limited(self, fs): + """Test _wait_if_rate_limited method""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + import time + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + # No rate limit - should not wait + waited = client._wait_if_rate_limited() + assert waited is False + + # Set a very short rate limit (0.1 seconds) + client._request_count_wait_until = time.time() + 0.1 + + start_time = time.time() + waited = client._wait_if_rate_limited() + elapsed = time.time() - start_time + + assert waited is True + assert elapsed >= 0.09 # Should have waited at least 0.09 seconds + + def test_thread_safety(self, fs): + """Test that rate limiting operations are thread-safe""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + from zscaler.zaiguard.models.policy_detection import RateLimitThrottlingDetail + import threading + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1", + auto_retry_on_rate_limit=False + ) + + def increment_throttles(): + throttle = RateLimitThrottlingDetail({ + "metric": "rq", + "retryAfterMillis": 100 + }) + client._handle_throttling_details([throttle]) + + # Run multiple threads incrementing throttles + threads = [threading.Thread(target=increment_throttles) for _ in range(10)] + for t in threads: + t.start() + for t in threads: + t.join() + + # Verify all increments were counted (thread-safe) + stats = client.get_rate_limit_stats() + assert stats["total_throttles"] == 10 + + def test_get_jsessionid(self, fs): + """Test get_jsessionid returns None for AIGuard""" + from zscaler.zaiguard.legacy import LegacyZGuardClientHelper + import requests + + client = LegacyZGuardClientHelper( + api_key="test_api_key", + cloud="us1" + ) + + req = requests.Request(method="GET", url="https://api.us1.zseclipse.net/v1/test") + prepared = req.prepare() + + session_id = client.get_jsessionid(prepared) + assert session_id is None, "AIGuard should not use JSESSIONID" diff --git a/tests/integration/zcc/cassettes/TestAdminUser.yaml b/tests/integration/zcc/cassettes/TestAdminUser.yaml index c6bb414a..f758c1fd 100644 --- a/tests/integration/zcc/cassettes/TestAdminUser.yaml +++ b/tests/integration/zcc/cassettes/TestAdminUser.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/x-www-form-urlencoded User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://identity.test.zscaler.com/oauth2/v1/token response: @@ -31,7 +31,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:55 GMT + - Wed, 11 Feb 2026 02:35:40 GMT expires: - '0' pragma: @@ -53,9 +53,9 @@ interactions: - SAMEORIGIN - SAMEORIGIN x-ratelimit-limit: - - 150, 150;w=1, 100000;w=60, 10000;w=60 + - 500, 500;w=1, 100000;w=60 x-ratelimit-remaining: - - '149' + - '499' x-ratelimit-reset: - '1' x-xss-protection: @@ -77,7 +77,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminUsers response: @@ -91,7 +91,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:56 GMT + - Wed, 11 Feb 2026 02:35:41 GMT pragma: - no-cache server: @@ -105,25 +105,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '543' + - '636' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 876ceab4-4145-9c71-b53b-ce10712f92c0 + - 90a4bf6a-8a04-9c71-a316-ec1419f3ea53 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '99' + - '97' x-ratelimit-reset: - - '2165' + - '1460' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -143,7 +143,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminUsers?page=1&pageSize=5 response: @@ -157,7 +157,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:56 GMT + - Wed, 11 Feb 2026 02:35:41 GMT pragma: - no-cache server: @@ -171,25 +171,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '347' + - '620' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - a5502df1-023d-935e-9dca-167b6300cf44 + - bd10011f-fecd-9234-a13d-8f78af3f1e41 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '98' + - '96' x-ratelimit-reset: - - '2164' + - '1459' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -209,7 +209,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminUsersSyncInfo response: @@ -227,7 +227,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:57 GMT + - Wed, 11 Feb 2026 02:35:42 GMT pragma: - no-cache server: @@ -241,25 +241,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '497' + - '596' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - df985c71-b77c-9d7f-a153-177f5a045a35 + - 67a7852b-c1aa-9afd-aaef-a9889fc50528 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '97' + - '95' x-ratelimit-reset: - - '2164' + - '1458' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -279,7 +279,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminRoles response: @@ -336,7 +336,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:57 GMT + - Wed, 11 Feb 2026 02:35:43 GMT pragma: - no-cache server: @@ -350,25 +350,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '581' + - '338' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 3c8fc0a3-8597-915d-9636-535d4c9227ff + - accb31a3-285f-9656-9bc3-3bab01b0c677 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '96' + - '94' x-ratelimit-reset: - - '2163' + - '1458' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -388,7 +388,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminRoles?page=1&pageSize=10 response: @@ -445,7 +445,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:58 GMT + - Wed, 11 Feb 2026 02:35:43 GMT pragma: - no-cache server: @@ -459,25 +459,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '329' + - '330' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c4bc2710-e883-963b-9b68-b8d87ac6c89d + - dd64e41b-2d5f-9e00-baf5-99a319f9a558 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '95' + - '93' x-ratelimit-reset: - - '2162' + - '1457' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestAdminUserExtended.yaml b/tests/integration/zcc/cassettes/TestAdminUserExtended.yaml index 3edc7c28..85c19541 100644 --- a/tests/integration/zcc/cassettes/TestAdminUserExtended.yaml +++ b/tests/integration/zcc/cassettes/TestAdminUserExtended.yaml @@ -1,68 +1,4 @@ interactions: -- request: - body: grant_type=client_credentials&client_id=ipm2ol7odg7hp&client_secret=REDACTED&audience=https%3A%2F%2Fapi.zscaler.com - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 - method: POST - uri: https://identity.test.zscaler.com/oauth2/v1/token - response: - body: - string: '{"access_token":"REDACTED_TOKEN","token_type":"Bearer","expires_in":83999}' - headers: - cache-control: - - no-cache, no-store, max-age=0, must-revalidate - content-security-policy: - - 'default-src ''none'' ;connect-src https://securitygeekio.zslogin.net/;font-src - https://fonts.gstatic.com ;img-src data: https://www.zscaler.com https://info.zscaler.com - ;script-src ''unsafe-inline'' ''unsafe-eval'' https://www.zscaler.com ;style-src - ''unsafe-inline'' https://fonts.googleapis.com ;frame-src https://securitygeekio.zslogin.net/ - https://securitygeekio-admin.zslogin.net/;frame-ancestors ;upgrade-insecure-requests' - content-type: - - application/json;charset=UTF-8 - date: - - Wed, 17 Dec 2025 20:40:20 GMT - expires: - - '0' - pragma: - - no-cache - server: - - ingress-gateway - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - - max-age=31536000; includeSubDomains; - - max-age=31536000; includeSubDomains; - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - - nosniff - - nosniff - x-frame-options: - - DENY - - SAMEORIGIN - - SAMEORIGIN - x-ratelimit-limit: - - 150, 150;w=1, 100000;w=60, 10000;w=60 - x-ratelimit-remaining: - - '149' - x-ratelimit-reset: - - '1' - x-xss-protection: - - '0' - status: - code: 200 - message: OK - request: body: '{}' headers: @@ -77,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminUsers response: @@ -91,7 +27,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:40:21 GMT + - Wed, 11 Feb 2026 02:35:43 GMT pragma: - no-cache server: @@ -105,25 +41,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '405' + - '294' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 0a20928f-8f9f-9208-ba93-0e5bb9372973 + - f20adbd7-b630-9a02-a6c2-e48350434431 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '90' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '65' + - '92' x-ratelimit-reset: - - '1180' + - '1457' x-transaction-id: - - ec807813-b167-4637-a658-55713001cc53 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -143,7 +79,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/syncZiaZdxAdminUsers response: @@ -155,21 +91,21 @@ interactions: content-type: - application/json date: - - Wed, 17 Dec 2025 20:40:21 GMT + - Wed, 11 Feb 2026 02:35:43 GMT server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload x-envoy-upstream-service-time: - - '1' + - '2' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - e8a3da5f-d5be-9f30-ad44-f49afb5a79f2 + - 6a23ab8c-ebef-923a-8221-a1742e2d3934 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-transaction-id: - - ec807813-b167-4637-a658-55713001cc53 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 404 message: Not Found @@ -187,7 +123,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/syncZpaAdminUsers response: @@ -199,7 +135,7 @@ interactions: content-type: - application/json date: - - Wed, 17 Dec 2025 20:40:21 GMT + - Wed, 11 Feb 2026 02:35:43 GMT server: - Zscaler strict-transport-security: @@ -209,11 +145,11 @@ interactions: x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 9f39e508-43ea-9326-8da6-02f32172b55b + - e5120f42-2432-96e7-94fa-dfcabbf02142 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-transaction-id: - - ec807813-b167-4637-a658-55713001cc53 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 404 message: Not Found @@ -231,7 +167,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getAdminRoles response: @@ -288,7 +224,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:40:21 GMT + - Wed, 11 Feb 2026 02:35:44 GMT pragma: - no-cache server: @@ -302,25 +238,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '399' + - '341' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 6b9a9819-ea3a-9d47-ba6c-bb515cd6cb06 + - 8f14a6e4-9df4-9cb7-a6dc-fbc2065e13a3 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '64' + - '91' x-ratelimit-reset: - - '1179' + - '1456' x-transaction-id: - - ec807813-b167-4637-a658-55713001cc53 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestCompanyInfo.yaml b/tests/integration/zcc/cassettes/TestCompanyInfo.yaml index d4ad5480..c42b0a4f 100644 --- a/tests/integration/zcc/cassettes/TestCompanyInfo.yaml +++ b/tests/integration/zcc/cassettes/TestCompanyInfo.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getCompanyInfo response: @@ -64,7 +64,7 @@ interactions: \ \"zpaAuthUsername\" : \"true\",\n \"machineTunnel\" : \"true\",\n \"cacheSystemProxy\" : \"true\",\n \"hideDTLSSupportSettings\" : \"false\",\n \"machineToken\" : \"true\",\n \"applicationBypassInfo\" : \"true\",\n \"tunnelTwoForAndroidDevices\" - : \"false\",\n \"tunnelTwoForiOSDevices\" : \"true\",\n \"ownershipVariablePosture\" + : \"true\",\n \"tunnelTwoForiOSDevices\" : \"true\",\n \"ownershipVariablePosture\" : \"true\",\n \"blockUnreachableDomainsTrafficFlag\" : \"true\",\n \"prioritizeIPv4OverIpv6\" : \"true\",\n \"crowdStrikeZTAScoreVisibility\" : \"true\",\n \"notificationForZPAReauthVisibility\" : \"true\",\n \"crlCheckVisibilityFlag\" : \"true\",\n \"dedicatedProxyPortsVisibility\" @@ -94,7 +94,7 @@ interactions: : \"3,4\",\n \"fallbackToGatewayDomain\" : \"1,2,3,4\",\n \"zccRevertVisibility\" : \"3,4\",\n \"forceZccRevertVisibility\" : \"3,4\",\n \"disasterRecoveryVisibility\" : \"1,2,3,4,5\",\n \"deviceGroupVisibility\" : \"1,2,3,4\",\n \"ipV6SupportForTunnel2\" - : \"1,3,4,5\",\n \"pathMtuDiscovery\" : \"true\",\n \"postureDiscEncryptionVisibilityForLinux\" + : \"1,2,3,4,5\",\n \"pathMtuDiscovery\" : \"true\",\n \"postureDiscEncryptionVisibilityForLinux\" : \"true\",\n \"postureMsDefenderVisibilityForLinux\" : \"true\",\n \"postureOsVersionVisibilityForLinux\" : \"true\",\n \"postureCrowdStrikeZTAScoreVisibilityForLinux\" : \"false\",\n \ \"flowLoggerZCCBlockedTrafficVisibility\" : \"true\",\n \"flowLoggerIntranetTrafficVisibility\" @@ -104,11 +104,11 @@ interactions: : \"2,3,4\",\n \"uninstallPasswordForProfileVisibility\" : \"2,3,4\",\n \ \"zpaAdvanceReauthVisibility\" : \"3,4\",\n \"latencyBasedZenEnablementVisibility\" : \"true\",\n \"dynamicZPAServiceEdgeAssignmenttVisibility\" : \"true\",\n - \ \"customProxyPortsVisibility\" : \"1,2,3,4\",\n \"domainInclusionExclusionForDNSRequestVisibility\" + \ \"customProxyPortsVisibility\" : \"1,2,3,4,5\",\n \"domainInclusionExclusionForDNSRequestVisibility\" : \"1,2,3,4,5\",\n \"appNotificationConfigVisibility\" : \"true\",\n \"enableAntiTamperingVisibility\" : \"3\",\n \"strictEnforcementStatusVisibility\" : \"3,4\",\n \"antiTamperingOtpSupportVisibility\" : \"true\",\n \"overrideATCmdByPolicyVisibility\" : \"3\",\n \"deviceTrustLevelVisibility\" - : \"1,2,3,4\",\n \"sourcePortBasedBypassesVisibility\" : \"3\",\n \"processBasedApplicationBypassVisibility\" + : \"1,2,3,4,5\",\n \"sourcePortBasedBypassesVisibility\" : \"3\",\n \"processBasedApplicationBypassVisibility\" : \"true\",\n \"customBasedApplicationBypassVisibility\" : \"1,2,3,4\",\n \ \"clientCertificateTemplateVisibility\" : \"3,4\",\n \"supportedZccVersionChartVisibility\" : \"true\",\n \"iosIpv6ModeVisibility\" : \"false\",\n \"deviceGroupMultiplePosturesVisibility\" @@ -130,14 +130,14 @@ interactions: \ \"splashScreenVisibility\" : \"true\",\n \"trustedNetworkRangeCriteriaVisibility\" : \"true\",\n \"trustedEgressIpsVisibility\" : \"true\",\n \"domainProfileDetectionVisibility\" : \"true\",\n \"allInboundTrafficVisibility\" : \"true\",\n \"exportLogsForNonAdminVisibility\" - : \"true\",\n \"enableAutoLogSnippetVisibility\" : \"true\",\n \"enableCliVisibility\" + : \"false\",\n \"enableAutoLogSnippetVisibility\" : \"true\",\n \"enableCliVisibility\" : \"3,4\",\n \"zccUserTypeVisibility\" : \"true\",\n \"installWindowsFirewallInboundRule\" : \"false\",\n \"retryAfterInSeconds\" : \"86400\",\n \"azureADPostureVisibility\" : \"true\",\n \"serverCertPostureVisibility\" : \"3\",\n \"performCRLCheckServerPostureVisibility\" : \"\",\n \"autoFillUsingLoginHintVisibility\" : \"true\",\n \"sendDefaultPolicyForInvalidPolicyToken\" : \"true\",\n \"enableZccPasswordSettings\" : \"3\",\n \"cliPasswordExpiryMinutes\" : \"120\",\n \"ssoUsingWindowsPrimaryAccount\" : \"true\",\n \"enableVerboseLog\" - : \"false\",\n \"zpaAuthExpOnWinLogonSession\" : \"true\",\n \"zpaAuthExpOnWinSessionLockVisibility\" + : \"true\",\n \"zpaAuthExpOnWinLogonSession\" : \"true\",\n \"zpaAuthExpOnWinSessionLockVisibility\" : \"true\",\n \"enableZccSlowRolloutByDefault\" : \"false\",\n \"purgeKerberosPreferredDCCacheVisibility\" : \"3\",\n \"postureJamfDetectionVisibility\" : \"true\",\n \"postureJamfDeviceRiskVisibility\" : \"true\",\n \"windowsAPCaptivePortalDetectionVisibility\" : \"true\",\n @@ -244,7 +244,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:23:58 GMT + - Wed, 11 Feb 2026 02:35:45 GMT pragma: - no-cache server: @@ -258,25 +258,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '370' + - '643' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 081cc3ac-fc3c-940d-ac95-fd872602c81a + - ac983db5-a8e3-921a-9fb4-060ad711b085 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '94' + - '90' x-ratelimit-reset: - - '2162' + - '1456' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestDevice.yaml b/tests/integration/zcc/cassettes/TestDevice.yaml index 2169cf59..3b76f1c3 100644 --- a/tests/integration/zcc/cassettes/TestDevice.yaml +++ b/tests/integration/zcc/cassettes/TestDevice.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/x-www-form-urlencoded User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://identity.test.zscaler.com/oauth2/v1/token response: @@ -31,7 +31,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:26:56 GMT + - Wed, 11 Feb 2026 02:35:29 GMT expires: - '0' pragma: @@ -53,9 +53,9 @@ interactions: - SAMEORIGIN - SAMEORIGIN x-ratelimit-limit: - - 150, 150;w=1, 100000;w=60, 10000;w=60 + - 500, 500;w=1, 100000;w=60 x-ratelimit-remaining: - - '149' + - '499' x-ratelimit-reset: - '1' x-xss-protection: @@ -77,18 +77,18 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=10&osType=3 response: body: string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n + \ \"state\" : 3,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" + : \"Remove pending\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" @@ -127,7 +127,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:26:57 GMT + - Wed, 11 Feb 2026 02:35:30 GMT pragma: - no-cache server: @@ -142,26 +142,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '786' + - '963' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 7a4395fb-eacd-9c63-8a7b-6abf4a67ab6e + - 388f341e-3b1a-9f56-919b-d399dca0df84 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '48' + - '99' x-ratelimit-reset: - - '1984' + - '1471' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - 30f6e7d1-880d-4865-91bd-2335b45b801e x-xss-protection: - 1; mode=block - 1; mode=block @@ -182,25 +182,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William - Guilherme\",\n \"type\" : 4,\n \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n @@ -212,7 +200,19 @@ interactions: : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n}, {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n \"state\" - : 3,\n \"udid\" : \"VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68\",\n + : 3,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n + \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n + \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows + 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" + : \"Remove pending\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" + : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" + : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" + : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" + : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n + \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 + (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William + Guilherme\",\n \"type\" : 3,\n \"state\" : 3,\n \"udid\" : \"VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68\",\n \ \"macAddress\" : \"00:50:56:9D:F5:23\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n \ \"last_seen_time\" : \"1645213834\",\n \"osVersion\" : \"Microsoft Windows @@ -244,7 +244,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:26:58 GMT + - Wed, 11 Feb 2026 02:35:31 GMT pragma: - no-cache server: @@ -259,26 +259,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '784' + - '686' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 5907cdba-a204-9b86-9ff4-16b636ea1a0e + - 64baffb8-e439-97be-906f-548b52994c28 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '47' + - '98' x-ratelimit-reset: - - '1983' + - '1470' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - 30f6e7d1-880d-4865-91bd-2335b45b801e x-xss-protection: - 1; mode=block - 1; mode=block @@ -299,25 +299,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?username=adam.ashcroft%40securitygeek.io&page=1&pageSize=10 response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William - Guilherme\",\n \"type\" : 4,\n \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n @@ -329,7 +317,19 @@ interactions: : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n}, {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n \"state\" - : 6,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:D630C3617830C5C0B2DDE986EA7D994324C4EC1D\",\n + : 3,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n + \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n + \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows + 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" + : \"Remove pending\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" + : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" + : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" + : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" + : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n + \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 + (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William + Guilherme\",\n \"type\" : 3,\n \"state\" : 6,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:D630C3617830C5C0B2DDE986EA7D994324C4EC1D\",\n \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n \ \"last_seen_time\" : \"1756523021\",\n \"osVersion\" : \"Microsoft Windows @@ -349,7 +349,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:26:58 GMT + - Wed, 11 Feb 2026 02:35:46 GMT pragma: - no-cache server: @@ -364,26 +364,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '665' + - '952' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 0605685d-a257-9e8f-bc5d-f7d63da8f568 + - 98448027-dea4-972a-aa61-d3d10e2004c6 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '46' + - '89' x-ratelimit-reset: - - '1982' + - '1455' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -404,18 +404,18 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5&osType=3 response: body: string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n + \ \"state\" : 3,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" + : \"Remove pending\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" @@ -454,7 +454,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:26:59 GMT + - Wed, 11 Feb 2026 02:35:46 GMT pragma: - no-cache server: @@ -469,26 +469,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '654' + - '389' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 612ae70f-2cef-973f-baa7-6023a4721f6e + - cdcd5fa0-f1e4-94dc-b911-2680d2656910 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '45' + - '88' x-ratelimit-reset: - - '1982' + - '1454' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -509,7 +509,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5&osType=4 response: @@ -535,7 +535,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:00 GMT + - Wed, 11 Feb 2026 02:35:47 GMT pragma: - no-cache server: @@ -550,26 +550,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '567' + - '395' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 8798105b-993a-9206-8959-cc02340fd5fc + - 71c284a0-daf8-9f40-b38d-8df39cf481b8 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '44' + - '87' x-ratelimit-reset: - - '1981' + - '1453' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -590,7 +590,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5&osType=1 response: @@ -604,7 +604,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:00 GMT + - Wed, 11 Feb 2026 02:35:47 GMT pragma: - no-cache server: @@ -619,26 +619,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '587' + - '413' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 4a44281e-8edc-9f49-b88a-e24a3d9038d5 + - f9ad4fd9-31e5-9340-97fd-1156458ba64b x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '91' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '43' + - '86' x-ratelimit-reset: - - '1980' + - '1453' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -659,7 +659,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5&osType=2 response: @@ -673,7 +673,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:01 GMT + - Wed, 11 Feb 2026 02:35:48 GMT pragma: - no-cache server: @@ -688,26 +688,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '524' + - '547' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 1dd65c69-cc79-9e38-bb55-ea3c62787019 + - 340a4c8f-8be9-9858-9ff3-6aec5b0f7593 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '90' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '42' + - '85' x-ratelimit-reset: - - '1979' + - '1452' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -728,7 +728,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5&osType=5 response: @@ -742,7 +742,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:02 GMT + - Wed, 11 Feb 2026 02:35:49 GMT pragma: - no-cache server: @@ -757,26 +757,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '612' + - '388' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 3211dc1c-1661-9fa3-a6fa-6416cfc42219 + - 7570a8d9-8557-96ac-a41a-9aa1fac540aa x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '41' + - '84' x-ratelimit-reset: - - '1979' + - '1452' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -797,24 +797,24 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=1 response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n} ]" + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" + : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n + \ \"agentVersion\" : \"4.5.2.73\",\n \"registrationState\" : \"Unregistered\",\n + \ \"owner\" : \"wguilherme\",\n \"machineHostname\" : \"F99LXTG6YY\",\n \"manufacturer\" + : \"Apple\",\n \"download_count\" : 8,\n \"registration_time\" : \"1759793919\",\n + \ \"deregistrationTimestamp\" : \"1759854271\",\n \"config_download_time\" + : \"1759831631\",\n \"keepAliveTime\" : \"1759852321\",\n \"hardwareFingerprint\" + : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n + \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n} + ]" headers: cache-control: - no-cache @@ -823,39 +823,41 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:03 GMT + - Wed, 11 Feb 2026 02:35:49 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - nosniff x-envoy-upstream-service-time: - - '576' + - '559' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 5e8a07ed-66b7-9bc4-a7bc-9b6e18b7f0a0 + - 27cd2c54-e553-90c1-80c5-b948cdd45b7e x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '91' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '40' + - '83' x-ratelimit-reset: - - '1978' + - '1451' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -876,7 +878,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?username=adam.ashcroft%40securitygeek.io response: @@ -888,7 +890,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:27:03 GMT + - Wed, 11 Feb 2026 02:35:50 GMT pragma: - no-cache server: @@ -900,21 +902,21 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '398' + - '505' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 4352596c-b5d3-9a0c-a218-e23545596286 + - 567c0a34-305a-9a74-8abd-b0e97c9a0bd5 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '39' + - '82' x-ratelimit-reset: - - '1977' + - '1451' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -932,19 +934,16 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET - uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?udid=VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90%3A92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8 + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?udid=053AF529-6506-5BF4-974E-A78C00AA51BD%3A501 response: body: - string: '{"id":"137111309","type":3,"state":1,"user_name":"REDACTED","owner":"WilliamGuilherme","machineHostname":"VCD138-WIN10","manufacturer":"VMware, - Inc.","internal_model":"VMware Virtual Platform","external_model":"VMware - Virtual Platform","os_version":"Microsoft Windows 10 Pro;64 bit;amd64","unique_id":"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","carrier":"","mac_address":"00:50:56:82:34:A2","device_locale":"en","agent_version":"4.7.0.88","rooted":0,"config_download_time":"1759822502","registration_time":"1759822502","download_count":1,"deregistration_time":"1759796303","last_seen_time":"1759822506","keep_alive_time":"1759822506","hardwareFingerprint":"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg\u003d\u003d","devicePolicyName":"SGIOLab","tunnelVersion":"20:1","logFetchInfo":{"logTs":0,"logAckTs":0,"error":0,"logFetchPCAPEnabled":false,"logFetchDBEnabled":false,"logFetchFromNoOfDays":0},"upmVersion":"4.5.0.33 - (32-bit)","zdpVersion":"25.3.15.9","zappArch":"x64","serialNumber":"VMware-42 - 02 38 a5 5f 9c 86 39-ff 5a d0 60 5c 35 6","ziaEnabled":"true","zpaEnabled":"true","zdxEnabled":"true","zdEnabled":"Not - Applicable","zdpEnabled":"true","ziaHealth":"Active","zpaHealth":"Active","zdxHealth":"Inactive","zdHealth":"Not - Applicable","zdpHealth":"Inactive","zpaLastSeenTime":"1759822506","zdxLastSeenTime":"1759795462","zdLastSeenTime":"Not - Applicable","zdpLastSeenTime":"1759795462","zccLoggedInUserType":"No","externalDeviceId":"","zccForceRevert":"0","deviceOtpArray":["afzawxx3f5","irog3l8n2b","8sus4ooi3l","756hb0ndvq","nmemrvsk9k","fhbwfljveu","w5rkichq4d","zk2huol2n4","yqd7s8gohf","40cygtumje"],"antiTamperingStatus":"0","deviceTrust":0,"zccTunnelVersion":"","vdi":0,"strictEnforcement":"0","expectedZCCVersion":"4.7.0.88","expectedZCCVersionTimestamp":"1759822509","zccUpgradeStatus":"In + string: '{"id":"190286315","type":4,"state":2,"user_name":"REDACTED","owner":"wguilherme","machineHostname":"F99LXTG6YY","manufacturer":"Apple","internal_model":"Mac16,7","external_model":"Mac16,7","os_version":"Version + 15.6.1 (Build 24G90) ;arm","unique_id":"053AF529-6506-5BF4-974E-A78C00AA51BD:501","carrier":"","mac_address":"06:5F:DD:5A:83:66","device_locale":"en-CA","agent_version":"4.5.2.73","rooted":0,"config_download_time":"1759831631","registration_time":"1759793919","download_count":8,"deregistration_time":"1759854271","last_seen_time":"1759852321","keep_alive_time":"1759852321","hardwareFingerprint":"6455319b50424227afe83202e4cf67ce4d633bd5","devicePolicyName":"ZTunnel2.0","tunnelVersion":"20:1","logFetchInfo":{"logTs":0,"logAckTs":0,"error":0,"logFetchPCAPEnabled":false,"logFetchDBEnabled":false,"logFetchFromNoOfDays":0},"upmVersion":"4.4.1.12","zdpVersion":"25.3.16.1167","zappArch":"","serialNumber":"F99LXTG6YY","ziaEnabled":"true","zpaEnabled":"true","zdxEnabled":"true","zdEnabled":"Not + Applicable","zdpEnabled":"true","ziaHealth":"Active","zpaHealth":"Active","zdxHealth":"Active","zdHealth":"Not + Applicable","zdpHealth":"Active","zpaLastSeenTime":"1759852321","zdxLastSeenTime":"1759852321","zdLastSeenTime":"Not + Applicable","zdpLastSeenTime":"1759852321","zccLoggedInUserType":"","externalDeviceId":"","zccForceRevert":"0","deviceOtpArray":["cx6t2c5scf","fnkkbwbypk","lffzktv8mt","ufpjz5hgqg","sillrh50xd","bq9oc4q9er","uvrh2lvbb9","tw5h9tbjjw","la7pcom35l","ybpiuirwuf"],"antiTamperingStatus":"","deviceTrust":0,"zccTunnelVersion":"","vdi":0,"strictEnforcement":"0","expectedZCCVersion":"4.5.2.73","expectedZCCVersionTimestamp":"1759852701","zccUpgradeStatus":"In Progress","lastLocationSourceUsed":"Source IP"}' headers: cache-control: @@ -954,39 +953,41 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:04 GMT + - Wed, 11 Feb 2026 02:35:50 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - nosniff x-envoy-upstream-service-time: - - '619' + - '418' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - f641fffa-8f98-9615-b1fd-f7d98904d03e + - 6a408f2f-8ba8-9d6f-b063-f4942e9dbf82 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '89' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '38' + - '81' x-ratelimit-reset: - - '1977' + - '1450' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -1007,7 +1008,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceCleanupInfo response: @@ -1023,7 +1024,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:27:04 GMT + - Wed, 11 Feb 2026 02:35:51 GMT pragma: - no-cache server: @@ -1037,84 +1038,28 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '211' + - '184' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c5ec2e51-25b2-986a-a797-6e4dc63464f0 + - 6001ba8e-4123-90b6-88b3-c71f77edd003 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '37' + - '80' x-ratelimit-reset: - - '1976' + - '1450' x-transaction-id: - - 5f0e8a76-b712-4661-817d-f0f74461af49 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: code: 200 message: OK -- request: - body: '{}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '2' - Content-Type: - - application/json - User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 - method: GET - uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?username=REDACTED - response: - body: - string: '' - headers: - cache-control: - - no-cache - content-encoding: - - gzip - date: - - Wed, 17 Dec 2025 20:39:18 GMT - pragma: - - no-cache - server: - - Zscaler - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-envoy-upstream-service-time: - - '927' - x-oneapi-host: - - https://apiusw2.zsapi.net - x-oneapi-request-id: - - de02e630-f87f-952d-8132-35f99f7f6c3e - x-oneapi-version: - - 109.1.92 - x-ratelimit-limit: - - 100, 100;w=3600, 100;w=3600 - x-ratelimit-remaining: - - '97' - x-ratelimit-reset: - - '1243' - x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 - status: - code: 400 - message: Bad Request version: 1 diff --git a/tests/integration/zcc/cassettes/TestDeviceDownloads.yaml b/tests/integration/zcc/cassettes/TestDeviceDownloads.yaml index 53728a12..bc4d957d 100644 --- a/tests/integration/zcc/cassettes/TestDeviceDownloads.yaml +++ b/tests/integration/zcc/cassettes/TestDeviceDownloads.yaml @@ -15,7 +15,7 @@ interactions: Time-Zone: - UTC User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/downloadDisableReasons?osTypes=3&startDate=2024-01-01+00%3A00%3A00+GMT&endDate=2024-12-31+00%3A00%3A00+GMT response: @@ -27,11 +27,11 @@ interactions: cache-control: - no-cache content-disposition: - - attachment; filename=export_2025-12-17_20_52.csv + - attachment; filename=export_2026-02-11_02_35.csv content-type: - application/octet-stream;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:41 GMT + - Wed, 11 Feb 2026 02:35:54 GMT pragma: - no-cache server: @@ -44,26 +44,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '618' + - '512' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - f852bc68-dbc7-9c93-823a-9c70170984ab + - add85eba-0d3c-9f34-87ad-c107b31290d1 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '2' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '57' + - '73' x-ratelimit-reset: - - '440' + - '1447' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -84,25 +84,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=5 response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William - Guilherme\",\n \"type\" : 4,\n \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n @@ -114,7 +102,19 @@ interactions: : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n}, {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n \"state\" - : 3,\n \"udid\" : \"VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68\",\n + : 3,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n + \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n + \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows + 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" + : \"Remove pending\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" + : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" + : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" + : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" + : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n + \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 + (32-bit)\",\n \"zappArch\" : \"x64\"\n}, {\n \"companyName\" : \"William + Guilherme\",\n \"type\" : 3,\n \"state\" : 3,\n \"udid\" : \"VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68\",\n \ \"macAddress\" : \"00:50:56:9D:F5:23\",\n \"user\" : \"REDACTED\",\n \"detail\" : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n \ \"last_seen_time\" : \"1645213834\",\n \"osVersion\" : \"Microsoft Windows @@ -146,7 +146,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:41 GMT + - Wed, 11 Feb 2026 02:35:55 GMT pragma: - no-cache server: @@ -161,26 +161,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '434' + - '550' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 834f0420-6e8c-962d-af8c-febeef0bff60 + - 7c887434-ae57-9dbc-89b0-4c7c9143b224 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '56' + - '72' x-ratelimit-reset: - - '439' + - '1446' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -201,24 +201,24 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=1 response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n} ]" + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" + : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n + \ \"agentVersion\" : \"4.5.2.73\",\n \"registrationState\" : \"Unregistered\",\n + \ \"owner\" : \"wguilherme\",\n \"machineHostname\" : \"F99LXTG6YY\",\n \"manufacturer\" + : \"Apple\",\n \"download_count\" : 8,\n \"registration_time\" : \"1759793919\",\n + \ \"deregistrationTimestamp\" : \"1759854271\",\n \"config_download_time\" + : \"1759831631\",\n \"keepAliveTime\" : \"1759852321\",\n \"hardwareFingerprint\" + : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n + \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n} + ]" headers: cache-control: - no-cache @@ -227,7 +227,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:42 GMT + - Wed, 11 Feb 2026 02:35:55 GMT pragma: - no-cache server: @@ -242,26 +242,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '582' + - '394' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - e0a058bd-b95d-9bf0-a02d-e46c89ad32e4 + - e675b881-28f5-9b9a-acec-93c4fb6aa526 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '93' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '55' + - '71' x-ratelimit-reset: - - '439' + - '1445' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -282,19 +282,16 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET - uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?udid=VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90%3A92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8 + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceDetails?udid=053AF529-6506-5BF4-974E-A78C00AA51BD%3A501 response: body: - string: '{"id":"137111309","type":3,"state":1,"user_name":"REDACTED","owner":"WilliamGuilherme","machineHostname":"VCD138-WIN10","manufacturer":"VMware, - Inc.","internal_model":"VMware Virtual Platform","external_model":"VMware - Virtual Platform","os_version":"Microsoft Windows 10 Pro;64 bit;amd64","unique_id":"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","carrier":"","mac_address":"00:50:56:82:34:A2","device_locale":"en","agent_version":"4.7.0.88","rooted":0,"config_download_time":"1759822502","registration_time":"1759822502","download_count":1,"deregistration_time":"1759796303","last_seen_time":"1759822506","keep_alive_time":"1759822506","hardwareFingerprint":"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg\u003d\u003d","devicePolicyName":"SGIOLab","tunnelVersion":"20:1","logFetchInfo":{"logTs":0,"logAckTs":0,"error":0,"logFetchPCAPEnabled":false,"logFetchDBEnabled":false,"logFetchFromNoOfDays":0},"upmVersion":"4.5.0.33 - (32-bit)","zdpVersion":"25.3.15.9","zappArch":"x64","serialNumber":"VMware-42 - 02 38 a5 5f 9c 86 39-ff 5a d0 60 5c 35 6","ziaEnabled":"true","zpaEnabled":"true","zdxEnabled":"true","zdEnabled":"Not - Applicable","zdpEnabled":"true","ziaHealth":"Active","zpaHealth":"Active","zdxHealth":"Inactive","zdHealth":"Not - Applicable","zdpHealth":"Inactive","zpaLastSeenTime":"1759822506","zdxLastSeenTime":"1759795462","zdLastSeenTime":"Not - Applicable","zdpLastSeenTime":"1759795462","zccLoggedInUserType":"No","externalDeviceId":"","zccForceRevert":"0","deviceOtpArray":["afzawxx3f5","irog3l8n2b","8sus4ooi3l","756hb0ndvq","nmemrvsk9k","fhbwfljveu","w5rkichq4d","zk2huol2n4","yqd7s8gohf","40cygtumje"],"antiTamperingStatus":"0","deviceTrust":0,"zccTunnelVersion":"","vdi":0,"strictEnforcement":"0","expectedZCCVersion":"4.7.0.88","expectedZCCVersionTimestamp":"1759822509","zccUpgradeStatus":"In + string: '{"id":"190286315","type":4,"state":2,"user_name":"REDACTED","owner":"wguilherme","machineHostname":"F99LXTG6YY","manufacturer":"Apple","internal_model":"Mac16,7","external_model":"Mac16,7","os_version":"Version + 15.6.1 (Build 24G90) ;arm","unique_id":"053AF529-6506-5BF4-974E-A78C00AA51BD:501","carrier":"","mac_address":"06:5F:DD:5A:83:66","device_locale":"en-CA","agent_version":"4.5.2.73","rooted":0,"config_download_time":"1759831631","registration_time":"1759793919","download_count":8,"deregistration_time":"1759854271","last_seen_time":"1759852321","keep_alive_time":"1759852321","hardwareFingerprint":"6455319b50424227afe83202e4cf67ce4d633bd5","devicePolicyName":"ZTunnel2.0","tunnelVersion":"20:1","logFetchInfo":{"logTs":0,"logAckTs":0,"error":0,"logFetchPCAPEnabled":false,"logFetchDBEnabled":false,"logFetchFromNoOfDays":0},"upmVersion":"4.4.1.12","zdpVersion":"25.3.16.1167","zappArch":"","serialNumber":"F99LXTG6YY","ziaEnabled":"true","zpaEnabled":"true","zdxEnabled":"true","zdEnabled":"Not + Applicable","zdpEnabled":"true","ziaHealth":"Active","zpaHealth":"Active","zdxHealth":"Active","zdHealth":"Not + Applicable","zdpHealth":"Active","zpaLastSeenTime":"1759852321","zdxLastSeenTime":"1759852321","zdLastSeenTime":"Not + Applicable","zdpLastSeenTime":"1759852321","zccLoggedInUserType":"","externalDeviceId":"","zccForceRevert":"0","deviceOtpArray":["cx6t2c5scf","fnkkbwbypk","lffzktv8mt","ufpjz5hgqg","sillrh50xd","bq9oc4q9er","uvrh2lvbb9","tw5h9tbjjw","la7pcom35l","ybpiuirwuf"],"antiTamperingStatus":"","deviceTrust":0,"zccTunnelVersion":"","vdi":0,"strictEnforcement":"0","expectedZCCVersion":"4.5.2.73","expectedZCCVersionTimestamp":"1759852701","zccUpgradeStatus":"In Progress","lastLocationSourceUsed":"Source IP"}' headers: cache-control: @@ -304,7 +301,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:43 GMT + - Wed, 11 Feb 2026 02:35:56 GMT pragma: - no-cache server: @@ -319,26 +316,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '622' + - '413' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c52f7589-9e5b-9b07-ab2b-79a91360408b + - 8962ef6e-364a-93e9-b4f1-d15f8223e81d x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '54' + - '70' x-ratelimit-reset: - - '438' + - '1445' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block diff --git a/tests/integration/zcc/cassettes/TestDeviceExtended.yaml b/tests/integration/zcc/cassettes/TestDeviceExtended.yaml index 6546a141..fd89f706 100644 --- a/tests/integration/zcc/cassettes/TestDeviceExtended.yaml +++ b/tests/integration/zcc/cassettes/TestDeviceExtended.yaml @@ -1,68 +1,4 @@ interactions: -- request: - body: grant_type=client_credentials&client_id=ipm2ol7odg7hp&client_secret=REDACTED&audience=https%3A%2F%2Fapi.zscaler.com - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 - method: POST - uri: https://identity.test.zscaler.com/oauth2/v1/token - response: - body: - string: '{"access_token":"REDACTED_TOKEN","token_type":"Bearer","expires_in":83999}' - headers: - cache-control: - - no-cache, no-store, max-age=0, must-revalidate - content-security-policy: - - 'default-src ''none'' ;connect-src https://securitygeekio.zslogin.net/;font-src - https://fonts.gstatic.com ;img-src data: https://www.zscaler.com https://info.zscaler.com - ;script-src ''unsafe-inline'' ''unsafe-eval'' https://www.zscaler.com ;style-src - ''unsafe-inline'' https://fonts.googleapis.com ;frame-src https://securitygeekio.zslogin.net/ - https://securitygeekio-admin.zslogin.net/;frame-ancestors ;upgrade-insecure-requests' - content-type: - - application/json;charset=UTF-8 - date: - - Wed, 17 Dec 2025 20:52:36 GMT - expires: - - '0' - pragma: - - no-cache - server: - - ingress-gateway - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - - max-age=31536000; includeSubDomains; - - max-age=31536000; includeSubDomains; - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - - nosniff - - nosniff - x-frame-options: - - DENY - - SAMEORIGIN - - SAMEORIGIN - x-ratelimit-limit: - - 150, 150;w=1, 100000;w=60, 10000;w=60 - x-ratelimit-remaining: - - '149' - x-ratelimit-reset: - - '1' - x-xss-protection: - - '0' - status: - code: 200 - message: OK - request: body: '{}' headers: @@ -77,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/downloadDevices response: @@ -92,15 +28,6 @@ interactions: Data Protection Version","Active Tunnel SDK version","Imprivata User","SerialNumber","Installation Type","Last Seen Connected to ZPA" - "REDACTED","WINDOWS","VMware, Inc. VMware Virtual Platform","","VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","00:50:56:82:34:A2","William - Guilherme","Microsoft Windows 10 Pro;64 bit;amd64","4.7.0.88 (64-bit)","4.5.0.33 - (32-bit)","SGIOLab","2025-10-07 07:35:06 GMT","Unknown","Registered","WilliamGuilherme","VCD138-WIN10","VMware, - Inc.","1","2025-10-07 07:35:02 GMT","2025-10-07 00:18:23 GMT","2025-10-07 - 07:35:02 GMT","2025-10-07 07:35:06 GMT","N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==","Tunnel - 2.0 with DTLS Protocol","","",,"Not Available","Not Applicable","25.3.15.9","","No","VMware-42 - 02 38 a5 5f 9c 86 39-ff 5a d0 60 5c 35 6","General Deployment","2025-10-07 - 07:35:06 GMT" - "REDACTED","MAC","Apple Mac16,7","","053AF529-6506-5BF4-974E-A78C00AA51BD:501","06:5F:DD:5A:83:66","William Guilherme","Version 15.6.1 (Build 24G90) ;arm","4.5.2.73","4.4.1.12","ZTunnel2.0","2025-10-07 15:52:01 GMT","Unknown","Unregistered","wguilherme","F99LXTG6YY","Apple","8","2025-10-06 @@ -109,6 +36,15 @@ interactions: DTLS Protocol","","",,"Not Applicable","Not Applicable","25.3.16.1167","","Not Applicable","F99LXTG6YY","General Deployment","2025-10-07 15:52:01 GMT" + "REDACTED","WINDOWS","VMware, Inc. VMware Virtual Platform","","VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","00:50:56:82:34:A2","William + Guilherme","Microsoft Windows 10 Pro;64 bit;amd64","4.7.0.88 (64-bit)","4.5.0.33 + (32-bit)","SGIOLab","2025-10-07 07:35:06 GMT","Unknown","Remove pending","WilliamGuilherme","VCD138-WIN10","VMware, + Inc.","1","2025-10-07 07:35:02 GMT","2025-10-07 00:18:23 GMT","2025-10-07 + 07:35:02 GMT","2025-10-07 07:35:06 GMT","N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==","Tunnel + 2.0 with DTLS Protocol","","",,"Not Applicable","Not Applicable","25.3.15.9","","No","VMware-42 + 02 38 a5 5f 9c 86 39-ff 5a d0 60 5c 35 6","General Deployment","2025-10-07 + 07:35:06 GMT" + "REDACTED","WINDOWS","VMware, Inc. VMware Virtual Platform",,"VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68","00:50:56:9D:F5:23","William Guilherme","Microsoft Windows 10 Pro;64 bit","3.6.1.23","3.0.0.57 (32-bit)","SGIOLab","2022-02-18 19:50:34 GMT","Unknown","Remove pending","wguilherme","VCD138-WIN10","VMware, @@ -131,11 +67,11 @@ interactions: cache-control: - no-cache content-disposition: - - attachment; filename=export_2025-12-17_20_52.csv + - attachment; filename=export_2026-02-11_02_35.csv content-type: - application/octet-stream;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:37 GMT + - Wed, 11 Feb 2026 02:35:51 GMT pragma: - no-cache server: @@ -148,26 +84,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '798' + - '394' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 3419756e-d2db-9bd1-b529-bee8f83c1beb + - 5d8066d5-41ae-9ab7-be22-6f239f2104de x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '1' + - '2' x-ratelimit-limit: - 3, 3;w=86400, 100;w=3600 x-ratelimit-remaining: - - '0' + - '2' x-ratelimit-reset: - - '11244' + - '77049' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -188,7 +124,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/downloadServiceStatus response: @@ -200,17 +136,17 @@ interactions: Hardware Fingerprint","Zscaler Client Connector Version","Registration State","Hostname","DC Location Method" - "REDACTED","VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","true","Active","2025-10-07 - 07:35:06 GMT","true","Active","2025-10-07 07:35:06 GMT","true","Inactive","2025-10-07 - 00:04:22 GMT","4.5.0.33","true","Inactive","2025-10-07 00:04:22 GMT","25.3.15.9","2025-10-07 - 07:35:06 GMT","WINDOWS","N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==","4.7.0.88 - (64 bit)","Registered","VCD138-WIN10" - "REDACTED","053AF529-6506-5BF4-974E-A78C00AA51BD:501","true","Active","2025-10-07 15:52:01 GMT","true","Active","2025-10-07 15:52:01 GMT","true","Active","2025-10-07 15:52:01 GMT","4.4.1.12","true","Active","2025-10-07 15:52:01 GMT","25.3.16.1167","2025-10-07 15:52:01 GMT","MAC","6455319b50424227afe83202e4cf67ce4d633bd5","4.5.2.73","Unregistered","F99LXTG6YY" + "REDACTED","VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8","true","Active","2025-10-07 + 07:35:06 GMT","true","Active","2025-10-07 07:35:06 GMT","true","Inactive","2025-10-07 + 00:04:22 GMT","4.5.0.33","true","Inactive","2025-10-07 00:04:22 GMT","25.3.15.9","2025-10-07 + 07:35:06 GMT","WINDOWS","N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==","4.7.0.88 + (64 bit)","Remove pending","VCD138-WIN10" + "REDACTED","VMware-42-1d-29-9b-7c-c5-3f-d2-90-3c-d5-4e-9c-75-6d-d0:19D0764C0D09DF81361B52530353FD5A52A34D68","true","Inactive","2022-02-18 19:50:34 GMT","true","Inactive","2022-01-12 17:43:59 GMT","true","Inactive","2022-01-12 17:43:59 GMT","3.0.0.57","false","Inactive",,"","2022-02-18 20:06:34 GMT","WINDOWS","AVANUFFSVFMFBgMNAQRVUQAAAAAAAAAAAAAAAAAAAAA=","3.6.1.23","Remove @@ -227,11 +163,11 @@ interactions: cache-control: - no-cache content-disposition: - - attachment; filename=export_2025-12-17_20_52.csv + - attachment; filename=export_2026-02-11_02_35.csv content-type: - application/octet-stream;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:38 GMT + - Wed, 11 Feb 2026 02:35:52 GMT pragma: - no-cache server: @@ -244,26 +180,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '788' + - '394' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 1622e0d7-f80d-9edc-968f-cd985f51e3b2 + - dbf2c54b-bb41-9f9e-b145-667c865825f3 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '2' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '62' + - '78' x-ratelimit-reset: - - '443' + - '1449' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -284,7 +220,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDeviceCleanupInfo response: @@ -300,7 +236,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:39 GMT + - Wed, 11 Feb 2026 02:35:52 GMT pragma: - no-cache server: @@ -314,25 +250,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '390' + - '186' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - e4e3d564-1671-9973-9464-a8e454cfd554 + - e18045e8-35b6-9246-98e1-66cb5d0d7f53 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '91' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '61' + - '77' x-ratelimit-reset: - - '442' + - '1448' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -352,7 +288,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/removeMachineTunnel response: @@ -366,7 +302,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:39 GMT + - Wed, 11 Feb 2026 02:35:52 GMT pragma: - no-cache server: @@ -380,25 +316,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '399' + - '183' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 4b7d71cf-ff00-9b42-84be-516f71ae5b85 + - 1fc09efd-3574-9845-8c0b-dbcf45381aac x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '60' + - '76' x-ratelimit-reset: - - '441' + - '1448' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestDeviceRemoval.yaml b/tests/integration/zcc/cassettes/TestDeviceRemoval.yaml index 9589d237..3015b380 100644 --- a/tests/integration/zcc/cassettes/TestDeviceRemoval.yaml +++ b/tests/integration/zcc/cassettes/TestDeviceRemoval.yaml @@ -14,7 +14,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/removeDevices response: @@ -28,7 +28,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:40 GMT + - Wed, 11 Feb 2026 02:35:52 GMT pragma: - no-cache server: @@ -42,25 +42,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '395' + - '163' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 5157407a-273f-95fc-a06e-dee05bd50285 + - 1c4631a4-505d-9b43-9632-4a33e775cd69 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '59' + - '75' x-ratelimit-reset: - - '441' + - '1448' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -81,7 +81,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/forceRemoveDevices response: @@ -95,7 +95,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:52:40 GMT + - Wed, 11 Feb 2026 02:35:53 GMT pragma: - no-cache server: @@ -107,23 +107,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '348' + - '766' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - e3786269-3ba6-91f3-98e9-3902b6c16129 + - f39136f2-170e-90ce-b1cb-25eb85b26c24 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '58' + - '74' x-ratelimit-reset: - - '440' + - '1447' x-transaction-id: - - c3df4d19-a5b2-4282-a5a4-9d29deb4769e + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request diff --git a/tests/integration/zcc/cassettes/TestEntitlements.yaml b/tests/integration/zcc/cassettes/TestEntitlements.yaml index ae67635d..ee61c570 100644 --- a/tests/integration/zcc/cassettes/TestEntitlements.yaml +++ b/tests/integration/zcc/cassettes/TestEntitlements.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZdxGroupEntitlements response: @@ -29,7 +29,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:07 GMT + - Wed, 11 Feb 2026 02:35:56 GMT pragma: - no-cache server: @@ -43,25 +43,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '370' + - '184' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 7ec9741d-798c-9b1c-b857-f80abe6b066b + - cab4f8ac-9867-9071-abfa-efaa4664ba33 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '83' + - '69' x-ratelimit-reset: - - '2153' + - '1444' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -81,7 +81,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZdxGroupEntitlements?page=1&pageSize=10 response: @@ -97,7 +97,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:07 GMT + - Wed, 11 Feb 2026 02:35:56 GMT pragma: - no-cache server: @@ -111,25 +111,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '186' + - '174' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 2711187c-28d9-9635-afb5-d374ceb0514b + - e81cdb05-6e66-9b0e-a5ac-f88fc0d3bf82 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '82' + - '68' x-ratelimit-reset: - - '2153' + - '1444' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -149,7 +149,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZpaGroupEntitlements response: @@ -165,7 +165,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:08 GMT + - Wed, 11 Feb 2026 02:35:56 GMT pragma: - no-cache server: @@ -179,25 +179,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '187' + - '182' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c2b6c7c3-4a0c-9639-8576-6af6a87e20c9 + - 7c84da43-3d73-9484-9da2-daf82a61d7bf x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '81' + - '67' x-ratelimit-reset: - - '2152' + - '1444' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -217,7 +217,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZpaGroupEntitlements?page=1&pageSize=10 response: @@ -233,7 +233,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:08 GMT + - Wed, 11 Feb 2026 02:35:57 GMT pragma: - no-cache server: @@ -247,25 +247,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '204' + - '181' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - b366b98e-3f39-918c-b10b-1958f4674c8e + - 5718a879-0961-9a08-bafc-79e3fc861451 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '80' + - '66' x-ratelimit-reset: - - '2152' + - '1443' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -285,7 +285,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZpaGroupEntitlements?search=test response: @@ -301,7 +301,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:08 GMT + - Wed, 11 Feb 2026 02:35:57 GMT pragma: - no-cache server: @@ -315,25 +315,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '189' + - '177' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 80ac0d2a-c016-97b3-a267-2ccddcfe7055 + - efb2d1c7-37ee-987c-bab9-5d67de261a1f x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '79' + - '65' x-ratelimit-reset: - - '2152' + - '1443' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestEntitlementsExtended.yaml b/tests/integration/zcc/cassettes/TestEntitlementsExtended.yaml index 40c18ea7..bb3aee92 100644 --- a/tests/integration/zcc/cassettes/TestEntitlementsExtended.yaml +++ b/tests/integration/zcc/cassettes/TestEntitlementsExtended.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/updateZdxGroupEntitlement response: @@ -25,21 +25,21 @@ interactions: content-type: - application/json date: - - Wed, 17 Dec 2025 20:39:22 GMT + - Wed, 11 Feb 2026 02:35:57 GMT server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload x-envoy-upstream-service-time: - - '0' + - '2' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 75694547-0477-9d3d-ad6c-a270159debaf + - 22becc50-daa4-97ed-a3e4-ac582ced0d8d x-oneapi-version: - - 109.1.92 + - 109.1.111 x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 404 message: Not Found @@ -57,7 +57,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/updateZpaGroupEntitlement response: @@ -69,21 +69,21 @@ interactions: content-type: - application/json date: - - Wed, 17 Dec 2025 20:39:22 GMT + - Wed, 11 Feb 2026 02:35:57 GMT server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload x-envoy-upstream-service-time: - - '6' + - '1' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - d249e5e8-c035-965f-8e74-0019f46fd67b + - b7ab2b49-9ab2-935f-b332-570a232b4134 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 404 message: Not Found @@ -101,7 +101,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZdxGroupEntitlements response: @@ -117,7 +117,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:22 GMT + - Wed, 11 Feb 2026 02:35:58 GMT pragma: - no-cache server: @@ -131,25 +131,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '217' + - '211' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - b6bcce95-6830-9cad-afef-703f5f481baa + - 9791b915-2b97-92b7-9422-5b6815aa5535 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '93' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '90' + - '64' x-ratelimit-reset: - - '1238' + - '1443' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -169,7 +169,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getZpaGroupEntitlements response: @@ -185,7 +185,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:23 GMT + - Wed, 11 Feb 2026 02:35:58 GMT pragma: - no-cache server: @@ -199,25 +199,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '497' + - '398' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - da3c32c3-06ce-9e14-9b15-b2eda7814660 + - 5ed0ecf8-333b-972c-8a04-79623b31c674 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '89' + - '63' x-ratelimit-reset: - - '1238' + - '1442' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestFailOpenPolicy.yaml b/tests/integration/zcc/cassettes/TestFailOpenPolicy.yaml index 09d9b01f..16ffad23 100644 --- a/tests/integration/zcc/cassettes/TestFailOpenPolicy.yaml +++ b/tests/integration/zcc/cassettes/TestFailOpenPolicy.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webFailOpenPolicy/listByCompany response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:09 GMT + - Wed, 11 Feb 2026 02:35:58 GMT pragma: - no-cache server: @@ -46,25 +46,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '210' + - '223' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 11267f20-3e3c-9424-b87e-736b6c7f99c4 + - c4cfc0fd-00dc-9385-8577-205b6640432e x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '92' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '78' + - '62' x-ratelimit-reset: - - '2151' + - '1442' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -84,7 +84,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webFailOpenPolicy/listByCompany?page=1&pageSize=10 response: @@ -103,7 +103,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:09 GMT + - Wed, 11 Feb 2026 02:35:59 GMT pragma: - no-cache server: @@ -117,25 +117,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '191' + - '366' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - a45bbd0c-6b25-9579-ab63-9f7d02cd1e2d + - c12007a0-c41d-9379-8a71-c596a7477121 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '96' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '77' + - '61' x-ratelimit-reset: - - '2151' + - '1442' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestFailOpenPolicyExtended.yaml b/tests/integration/zcc/cassettes/TestFailOpenPolicyExtended.yaml index 18ecf8af..093bf4ba 100644 --- a/tests/integration/zcc/cassettes/TestFailOpenPolicyExtended.yaml +++ b/tests/integration/zcc/cassettes/TestFailOpenPolicyExtended.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webFailOpenPolicy/listByCompany response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:23 GMT + - Wed, 11 Feb 2026 02:35:59 GMT pragma: - no-cache server: @@ -46,25 +46,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '193' + - '166' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - aa89da8d-2346-9573-8d2a-f5a6b56edec8 + - 59df07c7-6ad8-97e8-ad05-73db70b811ac x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '88' + - '60' x-ratelimit-reset: - - '1237' + - '1441' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -84,7 +84,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webFailOpenPolicy/listByCompany?page=1&pageSize=1 response: @@ -103,7 +103,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:24 GMT + - Wed, 11 Feb 2026 02:35:59 GMT pragma: - no-cache server: @@ -117,25 +117,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '337' + - '221' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 31de1c29-d421-9572-b3b3-f1360c90ff6f + - 97300aee-ece4-9108-a5a2-e097f2eadb7b x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '91' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '87' + - '59' x-ratelimit-reset: - - '1237' + - '1441' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -158,7 +158,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webFailOpenPolicy/edit response: @@ -172,7 +172,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:24 GMT + - Wed, 11 Feb 2026 02:36:00 GMT pragma: - no-cache server: @@ -186,25 +186,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '211' + - '191' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 64c0e79f-c6be-9559-9811-56208d8bac08 + - c92e1e2e-8cb6-977d-8a5b-5398b07b0053 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '86' + - '58' x-ratelimit-reset: - - '1236' + - '1440' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestForwardingProfile.yaml b/tests/integration/zcc/cassettes/TestForwardingProfile.yaml index abcf2367..3a51aa57 100644 --- a/tests/integration/zcc/cassettes/TestForwardingProfile.yaml +++ b/tests/integration/zcc/cassettes/TestForwardingProfile.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/listByCompany response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:09 GMT + - Wed, 11 Feb 2026 02:36:00 GMT pragma: - no-cache server: @@ -217,25 +217,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '198' + - '172' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - d90279fc-9bf2-9609-9a0f-1fbd09a6704a + - 0a8280e5-6d98-964f-aa5b-815c8cd943a5 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '93' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '76' + - '57' x-ratelimit-reset: - - '2151' + - '1440' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -255,7 +255,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/listByCompany?page=1&pageSize=10 response: @@ -445,7 +445,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:10 GMT + - Wed, 11 Feb 2026 02:36:00 GMT pragma: - no-cache server: @@ -459,25 +459,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '249' + - '158' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 3e4dc79c-0822-9c1d-a495-1f2238fdc878 + - cac6ec46-fbbb-9bae-af2a-9545362a4bd9 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '95' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '75' + - '56' x-ratelimit-reset: - - '2150' + - '1440' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -497,7 +497,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/listByCompany?search=test response: @@ -511,7 +511,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:10 GMT + - Wed, 11 Feb 2026 02:36:01 GMT pragma: - no-cache server: @@ -525,25 +525,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '184' + - '382' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 6795c7de-d290-9072-a65d-5f3addafac6b + - 402bedf8-c889-97e8-9542-3a083dccd882 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '94' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '74' + - '55' x-ratelimit-reset: - - '2150' + - '1440' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestForwardingProfileCRUD.yaml b/tests/integration/zcc/cassettes/TestForwardingProfileCRUD.yaml index 8dc01e88..3d75f3b8 100644 --- a/tests/integration/zcc/cassettes/TestForwardingProfileCRUD.yaml +++ b/tests/integration/zcc/cassettes/TestForwardingProfileCRUD.yaml @@ -14,7 +14,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/edit response: @@ -28,7 +28,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:26 GMT + - Wed, 11 Feb 2026 02:36:02 GMT pragma: - no-cache server: @@ -42,25 +42,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '182' + - '197' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 35cd6b17-0a41-9303-a9d0-4384d3073866 + - 55bbfedb-c747-953b-b82c-2ba0764ad98f x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '89' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '81' + - '50' x-ratelimit-reset: - - '1234' + - '1438' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestForwardingProfileExtended.yaml b/tests/integration/zcc/cassettes/TestForwardingProfileExtended.yaml index 00dc2f84..691a5692 100644 --- a/tests/integration/zcc/cassettes/TestForwardingProfileExtended.yaml +++ b/tests/integration/zcc/cassettes/TestForwardingProfileExtended.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/listByCompany response: @@ -203,7 +203,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:25 GMT + - Wed, 11 Feb 2026 02:36:01 GMT pragma: - no-cache server: @@ -217,25 +217,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '172' + - '180' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - cd1e6ecc-7d33-9ec1-88d6-607a3b46196f + - ee83ffdd-87eb-910b-a457-08d1aa57f3a8 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '93' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '85' + - '54' x-ratelimit-reset: - - '1236' + - '1439' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -255,7 +255,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/listByCompany?page=1&pageSize=1 response: @@ -358,7 +358,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:25 GMT + - Wed, 11 Feb 2026 02:36:01 GMT pragma: - no-cache server: @@ -372,25 +372,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '183' + - '172' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 24fe1f10-ce6c-9399-9280-07950f82f510 + - 29c6ea3a-33d6-9afb-af30-8c04f7e45995 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '92' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '84' + - '53' x-ratelimit-reset: - - '1235' + - '1439' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -463,7 +463,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/edit response: @@ -477,7 +477,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:25 GMT + - Wed, 11 Feb 2026 02:36:02 GMT pragma: - no-cache server: @@ -491,25 +491,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '438' + - '170' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - d247b043-ab8e-910e-a360-d92a7165c56a + - 86f91bbe-7afa-9c81-8c26-4c8bec2e9720 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '91' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '83' + - '52' x-ratelimit-reset: - - '1235' + - '1438' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -529,7 +529,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: DELETE uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webForwardingProfile/999999999/delete response: @@ -543,7 +543,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:26 GMT + - Wed, 11 Feb 2026 02:36:02 GMT pragma: - no-cache server: @@ -557,25 +557,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '346' + - '179' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 8069d918-3f8a-95f2-94d1-fe6b516e8b10 + - 03270b1c-5a69-940a-bfc1-f2a6230f3af6 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '90' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '82' + - '51' x-ratelimit-reset: - - '1234' + - '1438' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestSecrets.yaml b/tests/integration/zcc/cassettes/TestSecrets.yaml index 8c591773..91f3fdb7 100644 --- a/tests/integration/zcc/cassettes/TestSecrets.yaml +++ b/tests/integration/zcc/cassettes/TestSecrets.yaml @@ -13,24 +13,24 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getDevices?page=1&pageSize=1 response: body: - string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 3,\n - \ \"state\" : 1,\n \"udid\" : \"VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90:92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8\",\n - \ \"macAddress\" : \"00:50:56:82:34:A2\",\n \"user\" : \"REDACTED\",\n \"detail\" - : \"VMware, Inc. VMware Virtual Platform\",\n \"policyName\" : \"SGIOLab\",\n - \ \"last_seen_time\" : \"1759822506\",\n \"osVersion\" : \"Microsoft Windows - 10 Pro;64 bit;amd64\",\n \"agentVersion\" : \"4.7.0.88 (64-bit)\",\n \"registrationState\" - : \"Registered\",\n \"owner\" : \"WilliamGuilherme\",\n \"machineHostname\" - : \"VCD138-WIN10\",\n \"manufacturer\" : \"VMware, Inc.\",\n \"download_count\" - : 1,\n \"registration_time\" : \"1759822502\",\n \"deregistrationTimestamp\" - : \"1759796303\",\n \"config_download_time\" : \"1759822502\",\n \"keepAliveTime\" - : \"1759822506\",\n \"hardwareFingerprint\" : \"N2U3YzVmZjU3MmVlMThlODQ2ZGYzN2U2ZWE5ODlkZWVjM2IwYmE5MDQ2NTAyNzRjMDA4NmJmOTZkOTcyMzNjYg==\",\n - \ \"tunnelVersion\" : \"20:1\",\n \"vpnState\" : 0,\n \"upmVersion\" : \"4.5.0.33 - (32-bit)\",\n \"zappArch\" : \"x64\"\n} ]" + string: "[ {\n \"companyName\" : \"William Guilherme\",\n \"type\" : 4,\n + \ \"state\" : 2,\n \"udid\" : \"053AF529-6506-5BF4-974E-A78C00AA51BD:501\",\n + \ \"macAddress\" : \"06:5F:DD:5A:83:66\",\n \"user\" : \"REDACTED\",\n \"detail\" + : \"Apple Mac16,7\",\n \"policyName\" : \"ZTunnel2.0\",\n \"last_seen_time\" + : \"1759852321\",\n \"osVersion\" : \"Version 15.6.1 (Build 24G90) ;arm\",\n + \ \"agentVersion\" : \"4.5.2.73\",\n \"registrationState\" : \"Unregistered\",\n + \ \"owner\" : \"wguilherme\",\n \"machineHostname\" : \"F99LXTG6YY\",\n \"manufacturer\" + : \"Apple\",\n \"download_count\" : 8,\n \"registration_time\" : \"1759793919\",\n + \ \"deregistrationTimestamp\" : \"1759854271\",\n \"config_download_time\" + : \"1759831631\",\n \"keepAliveTime\" : \"1759852321\",\n \"hardwareFingerprint\" + : \"6455319b50424227afe83202e4cf67ce4d633bd5\",\n \"tunnelVersion\" : \"20:1\",\n + \ \"vpnState\" : 0,\n \"upmVersion\" : \"4.4.1.12\",\n \"zappArch\" : null\n} + ]" headers: cache-control: - no-cache @@ -39,7 +39,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:11 GMT + - Wed, 11 Feb 2026 02:36:03 GMT pragma: - no-cache server: @@ -52,26 +52,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '589' + - '460' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 62d13f07-bb5e-9a70-9359-7f405f006eac + - 8ad84f2d-7184-96da-bec1-fea37015e9c1 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '92' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '73' + - '49' x-ratelimit-reset: - - '2150' + - '1438' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -92,16 +92,15 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET - uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getOtp?udid=VMware-42-02-38-a5-5f-9c-86-39-ff-5a-d0-60-5c-35-68-90%3A92DA6D4B7D0C828275C63C4BCA15A1EDFE5463E8 + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getOtp?udid=053AF529-6506-5BF4-974E-A78C00AA51BD%3A501 response: body: - string: "{\n \"logoutOtp\" : \"afzawxx3f5\",\n \"revertOtp\" : \"irog3l8n2b\",\n - \ \"uninstallOtp\" : \"8sus4ooi3l\",\n \"exitOtp\" : \"756hb0ndvq\",\n \"ziaDisableOtp\" - : \"nmemrvsk9k\",\n \"zpaDisableOtp\" : \"fhbwfljveu\",\n \"zdxDisableOtp\" - : \"w5rkichq4d\",\n \"antiTemperingDisableOtp\" : \"yqd7s8gohf\",\n \"zdpDisableOtp\" - : \"40cygtumje\"\n}" + string: "{\n \"logoutOtp\" : \"cx6t2c5scf\",\n \"revertOtp\" : \"fnkkbwbypk\",\n + \ \"uninstallOtp\" : \"lffzktv8mt\",\n \"exitOtp\" : \"ufpjz5hgqg\",\n \"ziaDisableOtp\" + : \"sillrh50xd\",\n \"zpaDisableOtp\" : \"bq9oc4q9er\",\n \"zdxDisableOtp\" + : \"uvrh2lvbb9\",\n \"zdpDisableOtp\" : \"ybpiuirwuf\"\n}" headers: cache-control: - no-cache @@ -110,7 +109,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:14 GMT + - Wed, 11 Feb 2026 02:36:05 GMT pragma: - no-cache server: @@ -125,26 +124,26 @@ interactions: - nosniff - nosniff x-envoy-upstream-service-time: - - '2067' + - '1758' x-frame-options: - SAMEORIGIN - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - bd1af92b-ccd8-9346-b86d-d586cc5bced7 + - 02bcec75-0d8e-96bc-946f-4a898ba9fc93 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '72' + - '48' x-ratelimit-reset: - - '2149' + - '1437' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block - 1; mode=block @@ -165,7 +164,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getPasswords?username=REDACTED&osType=3 response: @@ -177,7 +176,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:24:17 GMT + - Wed, 11 Feb 2026 02:36:08 GMT pragma: - no-cache server: @@ -187,23 +186,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '2548' + - '3414' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - cfad3ea6-2990-9a1e-ab57-76a0a258403b + - 6fec96b8-2932-9bd0-a841-fda38e4a8ca4 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '71' + - '47' x-ratelimit-reset: - - '2146' + - '1435' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -221,7 +220,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getPasswords?username=REDACTED&osType=4 response: @@ -233,7 +232,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:24:20 GMT + - Wed, 11 Feb 2026 02:36:11 GMT pragma: - no-cache server: @@ -245,23 +244,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '3241' + - '2800' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - fcad3186-c5e0-9353-b658-3fe5117e23b3 + - ecdf66ba-38fc-91ea-b874-a9f6368a1e32 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '70' + - '46' x-ratelimit-reset: - - '2143' + - '1431' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -279,7 +278,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getPasswords?username=REDACTED&osType=5 response: @@ -291,7 +290,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:24:24 GMT + - Wed, 11 Feb 2026 02:36:14 GMT pragma: - no-cache server: @@ -303,23 +302,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '3548' + - '2464' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 98b1b393-de45-9d16-ba35-d45e3ac1e9c5 + - 264b589c-da57-9e6a-9e0f-8f36824195fd x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - '99' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '69' + - '45' x-ratelimit-reset: - - '2140' + - '1429' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -337,7 +336,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getPasswords?username=REDACTED&osType=1 response: @@ -349,7 +348,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:24:25 GMT + - Wed, 11 Feb 2026 02:36:15 GMT pragma: - no-cache server: @@ -361,23 +360,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '1310' + - '1235' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 45cdbc7c-738f-9ae9-8ccd-5712a784c9bf + - fbaee9fb-84a7-96ce-a33d-22aec73b8297 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '98' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '68' + - '44' x-ratelimit-reset: - - '2136' + - '1426' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -395,7 +394,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getPasswords?username=REDACTED&osType=2 response: @@ -407,7 +406,7 @@ interactions: content-encoding: - gzip date: - - Wed, 17 Dec 2025 18:24:28 GMT + - Wed, 11 Feb 2026 02:36:16 GMT pragma: - no-cache server: @@ -419,23 +418,23 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '2797' + - '1122' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - b2fbab23-8a8c-916c-9baf-7ecabeca0621 + - 9923ec7b-9d9f-9e94-9faf-efb2757524d5 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '99' + - '97' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '67' + - '43' x-ratelimit-reset: - - '2134' + - '1425' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request diff --git a/tests/integration/zcc/cassettes/TestTrustedNetworks.yaml b/tests/integration/zcc/cassettes/TestTrustedNetworks.yaml index 3b4ca526..f052bdf4 100644 --- a/tests/integration/zcc/cassettes/TestTrustedNetworks.yaml +++ b/tests/integration/zcc/cassettes/TestTrustedNetworks.yaml @@ -13,14 +13,14 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/listByCompany response: body: - string: "{\n \"totalCount\" : 21,\n \"trustedNetworkContracts\" : [ {\n \"id\" + string: "{\n \"totalCount\" : 24,\n \"trustedNetworkContracts\" : [ {\n \"id\" : \"9913\",\n \"companyId\" : \"4543\",\n \"createdBy\" : \"247739\",\n - \ \"editedBy\" : \"247739\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n + \ \"editedBy\" : \"0\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n \ \"networkName\" : \"BDTrustedNetwork01\",\n \"conditionType\" : 1,\n \ \"dnsServers\" : \"8.8.8.8\",\n \"dnsSearchDomains\" : \"\",\n \"hostnames\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"active\" : true\n }, @@ -152,7 +152,25 @@ interactions: : \"4543\",\n \"createdBy\" : \"453095\",\n \"editedBy\" : \"453095\",\n \ \"guid\" : \"32817b53-a0f9-42e6-ba37-d99bb43af376\",\n \"networkName\" : \"On_Trusted_Network_Mac\",\n \"conditionType\" : 1,\n \"dnsServers\" - : \"8.8.8.8\",\n \"active\" : false\n } ]\n}" + : \"8.8.8.8\",\n \"active\" : false\n }, {\n \"id\" : \"19687\",\n + \ \"companyId\" : \"4543\",\n \"createdBy\" : \"0\",\n \"editedBy\" + : \"0\",\n \"guid\" : \"142f4831-9721-4bff-82ee-45ae205ec8c6\",\n \"networkName\" + : \"tests-trusted-network-vcr0001\",\n \"conditionType\" : 0,\n \"dnsServers\" + : \"10.10.10.10, 10.10.10.11\",\n \"dnsSearchDomains\" : \"test.example.com\",\n + \ \"active\" : true\n }, {\n \"id\" : \"19693\",\n \"companyId\" + : \"4543\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n \"guid\" + : \"596801cb-e217-4e1d-a1f0-d84c5bca9d3a\",\n \"networkName\" : \"Test + Trusted Network for Coverage\",\n \"conditionType\" : 0,\n \"dnsServers\" + : \"10.11.12.13, 10.11.12.14\",\n \"dnsSearchDomains\" : \"test.example.com\",\n + \ \"hostnames\" : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" + : \"\",\n \"trustedDhcpServers\" : \"\",\n \"active\" : true\n }, {\n + \ \"id\" : \"19695\",\n \"companyId\" : \"4543\",\n \"createdBy\" + : \"0\",\n \"editedBy\" : \"0\",\n \"guid\" : \"fb23fc00-6bed-4771-a281-113f417e93b4\",\n + \ \"networkName\" : \"Test CRUD Trusted Network\",\n \"conditionType\" + : 0,\n \"dnsServers\" : \"8.8.8.8, 8.8.4.4\",\n \"dnsSearchDomains\" + : \"crud-test.example.com\",\n \"hostnames\" : \"\",\n \"trustedSubnets\" + : \"192.168.1.0/24\",\n \"trustedGateways\" : \"192.168.1.1\",\n \"trustedDhcpServers\" + : \"\",\n \"active\" : true\n } ]\n}" headers: cache-control: - no-cache @@ -161,7 +179,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:29 GMT + - Wed, 11 Feb 2026 02:36:17 GMT pragma: - no-cache server: @@ -175,25 +193,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '419' + - '361' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 88ecfeb9-1629-9658-88c3-c75ad6eaa630 + - 5d934863-38a3-9ee8-96a2-33414487ae83 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '90' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '66' + - '42' x-ratelimit-reset: - - '2131' + - '1423' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -213,14 +231,14 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/listByCompany?page=1&pageSize=10 response: body: - string: "{\n \"totalCount\" : 21,\n \"trustedNetworkContracts\" : [ {\n \"id\" + string: "{\n \"totalCount\" : 24,\n \"trustedNetworkContracts\" : [ {\n \"id\" : \"9913\",\n \"companyId\" : \"4543\",\n \"createdBy\" : \"247739\",\n - \ \"editedBy\" : \"247739\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n + \ \"editedBy\" : \"0\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n \ \"networkName\" : \"BDTrustedNetwork01\",\n \"conditionType\" : 1,\n \ \"dnsServers\" : \"8.8.8.8\",\n \"dnsSearchDomains\" : \"\",\n \"hostnames\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"active\" : true\n }, @@ -291,7 +309,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:29 GMT + - Wed, 11 Feb 2026 02:36:17 GMT pragma: - no-cache server: @@ -305,25 +323,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '399' + - '343' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - d12c4248-2872-9154-abe9-260869e5a04c + - 9d39212d-8d47-93cd-8c7b-e8ccaf198833 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '92' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '65' + - '41' x-ratelimit-reset: - - '2131' + - '1423' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -343,12 +361,30 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/listByCompany?search=test response: body: - string: "{\n \"totalCount\" : 0,\n \"trustedNetworkContracts\" : [ ]\n}" + string: "{\n \"totalCount\" : 3,\n \"trustedNetworkContracts\" : [ {\n \"id\" + : \"19687\",\n \"companyId\" : \"4543\",\n \"createdBy\" : \"0\",\n + \ \"editedBy\" : \"0\",\n \"guid\" : \"142f4831-9721-4bff-82ee-45ae205ec8c6\",\n + \ \"networkName\" : \"tests-trusted-network-vcr0001\",\n \"conditionType\" + : 0,\n \"dnsServers\" : \"10.10.10.10, 10.10.10.11\",\n \"dnsSearchDomains\" + : \"test.example.com\",\n \"active\" : true\n }, {\n \"id\" : \"19693\",\n + \ \"companyId\" : \"4543\",\n \"createdBy\" : \"0\",\n \"editedBy\" + : \"0\",\n \"guid\" : \"596801cb-e217-4e1d-a1f0-d84c5bca9d3a\",\n \"networkName\" + : \"Test Trusted Network for Coverage\",\n \"conditionType\" : 0,\n \"dnsServers\" + : \"10.11.12.13, 10.11.12.14\",\n \"dnsSearchDomains\" : \"test.example.com\",\n + \ \"hostnames\" : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" + : \"\",\n \"trustedDhcpServers\" : \"\",\n \"active\" : true\n }, {\n + \ \"id\" : \"19695\",\n \"companyId\" : \"4543\",\n \"createdBy\" + : \"0\",\n \"editedBy\" : \"0\",\n \"guid\" : \"fb23fc00-6bed-4771-a281-113f417e93b4\",\n + \ \"networkName\" : \"Test CRUD Trusted Network\",\n \"conditionType\" + : 0,\n \"dnsServers\" : \"8.8.8.8, 8.8.4.4\",\n \"dnsSearchDomains\" + : \"crud-test.example.com\",\n \"hostnames\" : \"\",\n \"trustedSubnets\" + : \"192.168.1.0/24\",\n \"trustedGateways\" : \"192.168.1.1\",\n \"trustedDhcpServers\" + : \"\",\n \"active\" : true\n } ]\n}" headers: cache-control: - no-cache @@ -357,7 +393,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:30 GMT + - Wed, 11 Feb 2026 02:36:18 GMT pragma: - no-cache server: @@ -371,25 +407,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '305' + - '235' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 0a92b2ec-bdfa-98df-9dd4-a104b9deed66 + - db87b9a7-8cfe-9fed-8e21-fb41fc78ecbf x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '93' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '64' + - '40' x-ratelimit-reset: - - '2130' + - '1422' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -410,14 +446,12 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/create response: body: - string: "{\n \"networkName\" : \"tests-trusted-network-vcr0001\",\n \"conditionType\" - : 0,\n \"dnsServers\" : \"10.10.10.10, 10.10.10.11\",\n \"dnsSearchDomains\" - : \"test.example.com\",\n \"active\" : true\n}" + string: "{\n \"conditionType\" : 0,\n \"active\" : false\n}" headers: cache-control: - no-cache @@ -426,7 +460,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:31 GMT + - Wed, 11 Feb 2026 02:36:18 GMT pragma: - no-cache server: @@ -440,25 +474,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '604' + - '187' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 49384d60-77e7-9795-a437-a3dace862fb0 + - e94ffd29-267c-9bda-a75b-5efc2f7ceb3e x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '91' + - '92' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '63' + - '39' x-ratelimit-reset: - - '2130' + - '1422' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestTrustedNetworksCRUD.yaml b/tests/integration/zcc/cassettes/TestTrustedNetworksCRUD.yaml index 4b5f6850..1890de2a 100644 --- a/tests/integration/zcc/cassettes/TestTrustedNetworksCRUD.yaml +++ b/tests/integration/zcc/cassettes/TestTrustedNetworksCRUD.yaml @@ -16,15 +16,12 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/create response: body: - string: "{\n \"networkName\" : \"Test CRUD Trusted Network\",\n \"conditionType\" - : 0,\n \"dnsServers\" : \"8.8.8.8, 8.8.4.4\",\n \"dnsSearchDomains\" : \"crud-test.example.com\",\n - \ \"hostnames\" : \"\",\n \"trustedSubnets\" : \"192.168.1.0/24\",\n \"trustedGateways\" - : \"192.168.1.1\",\n \"trustedDhcpServers\" : \"\",\n \"active\" : true\n}" + string: "{\n \"conditionType\" : 0,\n \"active\" : false\n}" headers: cache-control: - no-cache @@ -33,7 +30,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:29 GMT + - Wed, 11 Feb 2026 02:36:20 GMT pragma: - no-cache server: @@ -47,25 +44,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '275' + - '160' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 6a556c3b-bb4d-9952-b5e3-d8c72f2a34d1 + - d9070cfc-cc20-9270-8cb8-d883ca070849 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '90' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '75' + - '33' x-ratelimit-reset: - - '1231' + - '1420' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestTrustedNetworksExtended.yaml b/tests/integration/zcc/cassettes/TestTrustedNetworksExtended.yaml index 679d6b55..09748efe 100644 --- a/tests/integration/zcc/cassettes/TestTrustedNetworksExtended.yaml +++ b/tests/integration/zcc/cassettes/TestTrustedNetworksExtended.yaml @@ -13,14 +13,14 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/listByCompany response: body: - string: "{\n \"totalCount\" : 22,\n \"trustedNetworkContracts\" : [ {\n \"id\" + string: "{\n \"totalCount\" : 24,\n \"trustedNetworkContracts\" : [ {\n \"id\" : \"9913\",\n \"companyId\" : \"4543\",\n \"createdBy\" : \"247739\",\n - \ \"editedBy\" : \"247739\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n + \ \"editedBy\" : \"0\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n \ \"networkName\" : \"BDTrustedNetwork01\",\n \"conditionType\" : 1,\n \ \"dnsServers\" : \"8.8.8.8\",\n \"dnsSearchDomains\" : \"\",\n \"hostnames\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"active\" : true\n }, @@ -157,7 +157,20 @@ interactions: : \"0\",\n \"guid\" : \"142f4831-9721-4bff-82ee-45ae205ec8c6\",\n \"networkName\" : \"tests-trusted-network-vcr0001\",\n \"conditionType\" : 0,\n \"dnsServers\" : \"10.10.10.10, 10.10.10.11\",\n \"dnsSearchDomains\" : \"test.example.com\",\n - \ \"active\" : true\n } ]\n}" + \ \"active\" : true\n }, {\n \"id\" : \"19693\",\n \"companyId\" + : \"4543\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n \"guid\" + : \"596801cb-e217-4e1d-a1f0-d84c5bca9d3a\",\n \"networkName\" : \"Test + Trusted Network for Coverage\",\n \"conditionType\" : 0,\n \"dnsServers\" + : \"10.11.12.13, 10.11.12.14\",\n \"dnsSearchDomains\" : \"test.example.com\",\n + \ \"hostnames\" : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" + : \"\",\n \"trustedDhcpServers\" : \"\",\n \"active\" : true\n }, {\n + \ \"id\" : \"19695\",\n \"companyId\" : \"4543\",\n \"createdBy\" + : \"0\",\n \"editedBy\" : \"0\",\n \"guid\" : \"fb23fc00-6bed-4771-a281-113f417e93b4\",\n + \ \"networkName\" : \"Test CRUD Trusted Network\",\n \"conditionType\" + : 0,\n \"dnsServers\" : \"8.8.8.8, 8.8.4.4\",\n \"dnsSearchDomains\" + : \"crud-test.example.com\",\n \"hostnames\" : \"\",\n \"trustedSubnets\" + : \"192.168.1.0/24\",\n \"trustedGateways\" : \"192.168.1.1\",\n \"trustedDhcpServers\" + : \"\",\n \"active\" : true\n } ]\n}" headers: cache-control: - no-cache @@ -166,7 +179,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:27 GMT + - Wed, 11 Feb 2026 02:36:19 GMT pragma: - no-cache server: @@ -180,25 +193,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '169' + - '338' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 80f8dfd8-d5f2-9b42-a28a-4c928609bbcb + - acbb63f1-36c2-98b7-89f3-04f0e3349781 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '88' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '80' + - '38' x-ratelimit-reset: - - '1233' + - '1422' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -220,16 +233,12 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/create response: body: - string: "{\n \"networkName\" : \"Test Trusted Network for Coverage\",\n \"conditionType\" - : 0,\n \"dnsServers\" : \"10.11.12.13, 10.11.12.14\",\n \"dnsSearchDomains\" - : \"test.example.com\",\n \"hostnames\" : \"\",\n \"trustedSubnets\" : \"\",\n - \ \"trustedGateways\" : \"\",\n \"trustedDhcpServers\" : \"\",\n \"active\" - : true\n}" + string: "{\n \"conditionType\" : 0,\n \"active\" : false\n}" headers: cache-control: - no-cache @@ -238,7 +247,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:28 GMT + - Wed, 11 Feb 2026 02:36:19 GMT pragma: - no-cache server: @@ -252,25 +261,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '313' + - '168' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 7d5585a2-1786-973f-b343-f94e0f9510d8 + - 27994af2-b6b6-9485-b963-57f314bed5af x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '98' + - '91' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '79' + - '37' x-ratelimit-reset: - - '1233' + - '1421' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -290,14 +299,14 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/listByCompany?page=1&pageSize=1 response: body: - string: "{\n \"totalCount\" : 23,\n \"trustedNetworkContracts\" : [ {\n \"id\" + string: "{\n \"totalCount\" : 24,\n \"trustedNetworkContracts\" : [ {\n \"id\" : \"9913\",\n \"companyId\" : \"4543\",\n \"createdBy\" : \"247739\",\n - \ \"editedBy\" : \"247739\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n + \ \"editedBy\" : \"0\",\n \"guid\" : \"928c092b-3fe1-49bb-b01f-0618e4f38468\",\n \ \"networkName\" : \"BDTrustedNetwork01\",\n \"conditionType\" : 1,\n \ \"dnsServers\" : \"8.8.8.8\",\n \"dnsSearchDomains\" : \"\",\n \"hostnames\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"active\" : true\n } @@ -310,7 +319,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:28 GMT + - Wed, 11 Feb 2026 02:36:19 GMT pragma: - no-cache server: @@ -324,25 +333,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '174' + - '270' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 255cc395-609a-9641-861c-59529af46e2d + - 70b0dab1-acaf-9cfc-bfa8-51aa154aebd3 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '97' + - '91' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '78' + - '36' x-ratelimit-reset: - - '1232' + - '1421' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -350,7 +359,7 @@ interactions: message: OK - request: body: '{"active": true, "companyId": "4543", "conditionType": 1, "createdBy": - "247739", "dnsSearchDomains": "", "dnsServers": "8.8.8.8", "editedBy": "247739", + "247739", "dnsSearchDomains": "", "dnsServers": "8.8.8.8", "editedBy": "0", "guid": "928c092b-3fe1-49bb-b01f-0618e4f38468", "hostnames": "", "id": "9913", "networkName": "BDTrustedNetwork01", "resolvedIpsForHostname": ""}' headers: @@ -361,11 +370,11 @@ interactions: Connection: - keep-alive Content-Length: - - '297' + - '292' Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/edit response: @@ -379,7 +388,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:29 GMT + - Wed, 11 Feb 2026 02:36:20 GMT pragma: - no-cache server: @@ -393,25 +402,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '424' + - '534' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c976f5b4-e16f-9ee1-ac9b-20325d55e1b3 + - e52beeab-1fab-9c61-afdc-b3b8e2595523 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '87' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '77' + - '35' x-ratelimit-reset: - - '1232' + - '1421' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -431,7 +440,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: DELETE uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webTrustedNetwork/999999999/delete response: @@ -445,7 +454,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:29 GMT + - Wed, 11 Feb 2026 02:36:20 GMT pragma: - no-cache server: @@ -459,25 +468,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '205' + - '165' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 31d5f71d-36b4-99d4-a1fa-59ae7d13c3b6 + - e55f4063-3c5e-995b-bdde-14dac20c55a2 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '90' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '76' + - '34' x-ratelimit-reset: - - '1231' + - '1420' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestWebAppService.yaml b/tests/integration/zcc/cassettes/TestWebAppService.yaml index 0043b8a9..10e89735 100644 --- a/tests/integration/zcc/cassettes/TestWebAppService.yaml +++ b/tests/integration/zcc/cassettes/TestWebAppService.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webAppService/listByCompany response: @@ -56,11 +56,40 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,8801,8802\",\n \ \"ipaddr\" : \"2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30c0:180::/48,2407:30c0:181::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"16327\",\n \"editedBy\" - : \"0\",\n \"editedTimestamp\" : \"1751228573\",\n \"version\" : 0\n}, {\n - \ \"id\" : 5,\n \"appVersion\" : 0,\n \"appSvcId\" : 123456,\n \"appName\" - : \"Microsoft Teams\",\n \"active\" : true,\n \"uid\" : \"33f85c91-598b-4db6-8f12-b74116ea3560\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"UDP\",\n \"port\" : \"3478,3479,3480,3481\",\n - \ \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n + : \"0\",\n \"editedTimestamp\" : \"1751228573\",\n \"zappDataBlob\" : \"3.7.35.0/25 + ,3.235.82.0/23 ,3.235.96.0/23 ,4.34.125.128/25 ,4.35.64.128/25 ,8.5.128.0/23 + ,15.220.80.0/24 ,15.220.81.0/25 ,18.254.23.128/25 ,18.254.61.0/25 ,20.203.158.80/28 + ,20.203.190.192/26 ,50.239.202.0/23 ,50.239.204.0/24 ,52.61.100.128/25 ,64.125.62.0/24 + ,64.211.144.0/24 ,64.224.32.0/19 ,65.39.152.0/24 ,69.174.57.0/24 ,69.174.108.0/22 + ,101.36.167.0/24 ,101.36.170.0/23 ,103.122.166.0/23 ,111.33.115.0/25 ,111.33.181.0/25 + ,115.110.154.192/26 ,115.114.56.192/26 ,115.114.115.0/26 ,115.114.131.0/26 + ,120.29.148.0/24 ,121.244.146.0/27 ,134.224.0.0/16 ,137.66.128.0/17 ,144.195.0.0/16 + ,147.124.96.0/19 ,149.137.0.0/17 ,156.45.0.0/17 ,159.124.0.0/16 ,160.1.56.128/25 + ,161.199.136.0/22 ,162.12.232.0/22 ,162.255.36.0/22 ,165.254.88.0/23 ,166.108.64.0/18 + , 168.140.0.0/17, 170.114.0.0/16 ,173.231.80.0/20 ,192.204.12.0/22 ,198.251.128.0/17 + ,202.177.207.128/27 ,203.200.219.128/27 ,204.80.104.0/21 ,204.141.28.0/22 + ,206.247.0.0/16 ,207.226.132.0/24 ,209.9.211.0/24 ,209.9.215.0/24 ,213.19.144.0/24 + ,213.19.153.0/24 ,213.244.140.0/24 ,221.122.63.0/24 ,221.122.64.0/24 ,221.122.88.64/27 + ,221.122.88.128/25 ,221.122.89.128/25 ,221.123.139.192/27,3.7.35.0/25 ,3.235.82.0/23 + ,3.235.96.0/23 ,4.34.125.128/25 ,4.35.64.128/25 ,8.5.128.0/23 ,15.220.80.0/24 + ,15.220.81.0/25 ,18.254.23.128/25 ,18.254.61.0/25 ,20.203.158.80/28 ,20.203.190.192/26 + ,50.239.202.0/23 ,50.239.204.0/24 ,52.61.100.128/25 ,64.125.62.0/24 ,64.211.144.0/24 + ,64.224.32.0/19 ,65.39.152.0/24 ,69.174.57.0/24 ,69.174.108.0/22 ,101.36.167.0/24 + ,101.36.170.0/23 ,103.122.166.0/23 ,111.33.115.0/25 ,111.33.181.0/25 ,115.110.154.192/26 + ,115.114.56.192/26 ,115.114.115.0/26 ,115.114.131.0/26 ,120.29.148.0/24 ,121.244.146.0/27 + ,134.224.0.0/16 ,137.66.128.0/17 ,144.195.0.0/16 ,147.124.96.0/19 ,149.137.0.0/17 + ,156.45.0.0/17 ,159.124.0.0/16 ,160.1.56.128/25 ,161.199.136.0/22 ,162.12.232.0/22 + ,162.255.36.0/22 ,165.254.88.0/23 ,166.108.64.0/18 , 168.140.0.0/17, 170.114.0.0/16 + ,173.231.80.0/20 ,192.204.12.0/22 ,198.251.128.0/17 ,202.177.207.128/27 ,203.200.219.128/27 + ,204.80.104.0/21 ,204.141.28.0/22 ,206.247.0.0/16 ,207.226.132.0/24 ,209.9.211.0/24 + ,209.9.215.0/24 ,213.19.144.0/24 ,213.19.153.0/24 ,213.244.140.0/24 ,221.122.63.0/24 + ,221.122.64.0/24 ,221.122.88.64/27 ,221.122.88.128/25 ,221.122.89.128/25 ,221.123.139.192/27 + ,52.84.151.0/24 ,170.114.45.0/24 ,170.114.46.0/24\",\n \"zappDataBlobV6\" + : \"2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30c0:180::/48,2407:30c0:181::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 5,\n \"appVersion\" : 0,\n \"appSvcId\" + : 123456,\n \"appName\" : \"Microsoft Teams\",\n \"active\" : true,\n \"uid\" + : \"33f85c91-598b-4db6-8f12-b74116ea3560\",\n \"appDataBlob\" : [ {\n \"proto\" + : \"UDP\",\n \"port\" : \"3478,3479,3480,3481\",\n \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,52.238.119.141/32,52.244.160.207/32,40.72.124.128/28,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"UDP\",\n @@ -68,19 +97,22 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"2603:1027::/48,2603:1037::/48,2603:1047::/48,2603:1057::/48,2603:1063::/38,2620:1ec:6::/48,2620:1ec:40::/42,2406:e500:4a00::/39\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"16327\",\n \"editedBy\" - : \"0\",\n \"editedTimestamp\" : \"1734282130\",\n \"version\" : 0\n}, {\n - \ \"id\" : 7,\n \"appVersion\" : 0,\n \"appSvcId\" : 310,\n \"appName\" - : \"Microsoft SharePoint\",\n \"active\" : true,\n \"uid\" : \"CC84C4F3-DEB3-497B-ABBA-A9F36FF690C5\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n - \ \"ipaddr\" : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n + : \"0\",\n \"editedTimestamp\" : \"1734282130\",\n \"zappDataBlob\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21,52.112.0.0/14,52.122.0.0/15,52.238.119.141/32,52.244.160.207/32,40.72.124.128/28,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n + \ \"zappDataBlobV6\" : \"2603:1063::/38,2406:e500:4a00::/39,2603:1027::/48,2603:1037::/48,2603:1047::/48,2603:1057::/48,2603:1063::/38,2620:1ec:6::/48,2620:1ec:40::/42,2406:e500:4a00::/39\",\n + \ \"version\" : 0\n}, {\n \"id\" : 7,\n \"appVersion\" : 0,\n \"appSvcId\" + : 310,\n \"appName\" : \"Microsoft SharePoint\",\n \"active\" : true,\n + \ \"uid\" : \"CC84C4F3-DEB3-497B-ABBA-A9F36FF690C5\",\n \"appDataBlob\" : + [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \"ipaddr\" + : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n \ \"port\" : \"443,80\",\n \"ipaddr\" : \"2603:1061:1300::/40,2620:1ec:8f8::/46,2620:1ec:908::/46,2a01:111:f402::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714801\",\n \"version\" : 0\n}, {\n \"id\" - : 9,\n \"appVersion\" : 0,\n \"appSvcId\" : 340,\n \"appName\" : \"Microsoft - Exchange\",\n \"active\" : true,\n \"uid\" : \"ED02E0D4-5BD8-498D-AAD7-4BC0EA20817F\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n - \ \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n + \ \"editedTimestamp\" : \"1730714801\",\n \"zappDataBlob\" : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n + \ \"zappDataBlobV6\" : \"2603:1061:1300::/40,2620:1ec:8f8::/46,2620:1ec:908::/46,2a01:111:f402::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 9,\n \"appVersion\" : 0,\n \"appSvcId\" + : 340,\n \"appName\" : \"Microsoft Exchange\",\n \"active\" : true,\n \"uid\" + : \"ED02E0D4-5BD8-498D-AAD7-4BC0EA20817F\",\n \"appDataBlob\" : [ {\n \"proto\" + : \"TCP\",\n \"port\" : \"443,80\",\n \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"443\",\n \ \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n @@ -88,20 +120,23 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"443\",\n \ \"ipaddr\" : \"2603:1006::/40,2603:1016::/36,2603:1026::/36,2603:1036::/36,2603:1046::/36,2603:1056::/36,2620:1ec:4::152/128,2620:1ec:4::153/128,2620:1ec:c::10/128,2620:1ec:c::11/128,2620:1ec:d::10/128,2620:1ec:d::11/128,2620:1ec:8f0::/46,2620:1ec:900::/46,2620:1ec:a92::152/128,2620:1ec:a92::153/128\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714824\",\n \"version\" : 0\n}, {\n \"id\" - : 11,\n \"appVersion\" : 0,\n \"appSvcId\" : 370,\n \"appName\" : \"M365\",\n - \ \"active\" : true,\n \"uid\" : \"490824C4-0E74-460C-A528-C56CF0376901\",\n + \ \"editedTimestamp\" : \"1730714824\",\n \"zappDataBlob\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n + \ \"zappDataBlobV6\" : \"2603:1006::/40,2603:1016::/36,2603:1026::/36,2603:1036::/36,2603:1046::/36,2603:1056::/36,2620:1ec:4::152/128,2620:1ec:4::153/128,2620:1ec:c::10/128,2620:1ec:c::11/128,2620:1ec:d::10/128,2620:1ec:d::11/128,2620:1ec:8f0::/46,2620:1ec:900::/46,2620:1ec:a92::152/128,2620:1ec:a92::153/128\",\n + \ \"version\" : 0\n}, {\n \"id\" : 11,\n \"appVersion\" : 0,\n \"appSvcId\" + : 370,\n \"appName\" : \"M365\",\n \"active\" : true,\n \"uid\" : \"490824C4-0E74-460C-A528-C56CF0376901\",\n \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"13.107.6.171/32,13.107.18.15/32,13.107.140.6/32,52.108.0.0/14,52.244.37.168/32,20.20.32.0/19,20.190.128.0/18,20.231.128.0/19,40.126.0.0/18\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n \ \"port\" : \"443,80\",\n \"ipaddr\" : \"2603:1006:1400::/40,2603:1016:2400::/40,2603:1026:2400::/40,2603:1036:2400::/40,2603:1046:1400::/40,2603:1056:1400::/40,2603:1063:2000::/38,2620:1ec:c::15/128,2620:1ec:8fc::6/128,2620:1ec:a92::171/128,2a01:111:f100:2000::a83e:3019/128,2a01:111:f100:2002::8975:2d79/128,2a01:111:f100:2002::8975:2da8/128,2a01:111:f100:7000::6fdd:6cd5/128,2a01:111:f100:a004::bfeb:88cf/128,2603:1006:2000::/48,2603:1007:200::/48,2603:1016:1400::/48,2603:1017::/48,2603:1026:3000::/48,2603:1027:1::/48,2603:1036:3000::/48,2603:1037:1::/48,2603:1046:2000::/48,2603:1047:1::/48,2603:1056:2000::/48,2603:1057:2::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714840\",\n \"version\" : 0\n}, {\n \"id\" - : 13,\n \"appVersion\" : 0,\n \"appSvcId\" : 410,\n \"appName\" : \"Windows - 365 & Azure Virtual Desktop\",\n \"active\" : true,\n \"uid\" : \"477C17C9-86AE-4477-B584-AD84329EBD0E\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443\",\n - \ \"ipaddr\" : \"40.64.144.0/20\",\n \"fqdn\" : \"\"\n }, {\n \"proto\" - : \"TCP\",\n \"port\" : \"1688\",\n \"ipaddr\" : \"20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249\",\n + \ \"editedTimestamp\" : \"1730714840\",\n \"zappDataBlob\" : \"13.107.6.171/32,13.107.18.15/32,13.107.140.6/32,52.108.0.0/14,52.244.37.168/32,20.20.32.0/19,20.190.128.0/18,20.231.128.0/19,40.126.0.0/18\",\n + \ \"zappDataBlobV6\" : \"2603:1006:1400::/40,2603:1016:2400::/40,2603:1026:2400::/40,2603:1036:2400::/40,2603:1046:1400::/40,2603:1056:1400::/40,2603:1063:2000::/38,2620:1ec:c::15/128,2620:1ec:8fc::6/128,2620:1ec:a92::171/128,2a01:111:f100:2000::a83e:3019/128,2a01:111:f100:2002::8975:2d79/128,2a01:111:f100:2002::8975:2da8/128,2a01:111:f100:7000::6fdd:6cd5/128,2a01:111:f100:a004::bfeb:88cf/128,2603:1006:2000::/48,2603:1007:200::/48,2603:1016:1400::/48,2603:1017::/48,2603:1026:3000::/48,2603:1027:1::/48,2603:1036:3000::/48,2603:1037:1::/48,2603:1046:2000::/48,2603:1047:1::/48,2603:1056:2000::/48,2603:1057:2::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 13,\n \"appVersion\" : 0,\n \"appSvcId\" + : 410,\n \"appName\" : \"Windows 365 & Azure Virtual Desktop\",\n \"active\" + : true,\n \"uid\" : \"477C17C9-86AE-4477-B584-AD84329EBD0E\",\n \"appDataBlob\" + : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443\",\n \"ipaddr\" : + \"40.64.144.0/20\",\n \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n + \ \"port\" : \"1688\",\n \"ipaddr\" : \"20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"80\",\n \ \"ipaddr\" : \"169.254.169.254,168.63.129.16\",\n \"fqdn\" : \"\"\n \ }, {\n \"proto\" : \"UDP\",\n \"port\" : \"3478\",\n \"ipaddr\" @@ -110,7 +145,9 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"3478\",\n \ \"ipaddr\" : \"2603:1061:2010::/48,2603:1061:2011::/48\",\n \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n \"editedTimestamp\" - : \"1751366285\",\n \"version\" : 0\n} ]" + : \"1751366285\",\n \"zappDataBlob\" : \"40.64.144.0/20,20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249,169.254.169.254,168.63.129.16,51.5.0.0/16\",\n + \ \"zappDataBlobV6\" : \"2603:1061:2010::/48,2603:1061:2011::/48\",\n \"version\" + : 0\n} ]" headers: cache-control: - no-cache @@ -119,7 +156,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:31 GMT + - Wed, 11 Feb 2026 02:36:21 GMT pragma: - no-cache server: @@ -133,25 +170,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '428' + - '326' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 8dd8d7ab-599f-9f00-b20c-4df52a661c15 + - 6a0337bc-a782-9cc6-a68d-9630a630fbe0 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '89' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '62' + - '32' x-ratelimit-reset: - - '2129' + - '1420' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -171,7 +208,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webAppService/listByCompany?page=1&pageSize=10 response: @@ -214,11 +251,40 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,8801,8802\",\n \ \"ipaddr\" : \"2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30c0:180::/48,2407:30c0:181::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"16327\",\n \"editedBy\" - : \"0\",\n \"editedTimestamp\" : \"1751228573\",\n \"version\" : 0\n}, {\n - \ \"id\" : 5,\n \"appVersion\" : 0,\n \"appSvcId\" : 123456,\n \"appName\" - : \"Microsoft Teams\",\n \"active\" : true,\n \"uid\" : \"33f85c91-598b-4db6-8f12-b74116ea3560\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"UDP\",\n \"port\" : \"3478,3479,3480,3481\",\n - \ \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n + : \"0\",\n \"editedTimestamp\" : \"1751228573\",\n \"zappDataBlob\" : \"3.7.35.0/25 + ,3.235.82.0/23 ,3.235.96.0/23 ,4.34.125.128/25 ,4.35.64.128/25 ,8.5.128.0/23 + ,15.220.80.0/24 ,15.220.81.0/25 ,18.254.23.128/25 ,18.254.61.0/25 ,20.203.158.80/28 + ,20.203.190.192/26 ,50.239.202.0/23 ,50.239.204.0/24 ,52.61.100.128/25 ,64.125.62.0/24 + ,64.211.144.0/24 ,64.224.32.0/19 ,65.39.152.0/24 ,69.174.57.0/24 ,69.174.108.0/22 + ,101.36.167.0/24 ,101.36.170.0/23 ,103.122.166.0/23 ,111.33.115.0/25 ,111.33.181.0/25 + ,115.110.154.192/26 ,115.114.56.192/26 ,115.114.115.0/26 ,115.114.131.0/26 + ,120.29.148.0/24 ,121.244.146.0/27 ,134.224.0.0/16 ,137.66.128.0/17 ,144.195.0.0/16 + ,147.124.96.0/19 ,149.137.0.0/17 ,156.45.0.0/17 ,159.124.0.0/16 ,160.1.56.128/25 + ,161.199.136.0/22 ,162.12.232.0/22 ,162.255.36.0/22 ,165.254.88.0/23 ,166.108.64.0/18 + , 168.140.0.0/17, 170.114.0.0/16 ,173.231.80.0/20 ,192.204.12.0/22 ,198.251.128.0/17 + ,202.177.207.128/27 ,203.200.219.128/27 ,204.80.104.0/21 ,204.141.28.0/22 + ,206.247.0.0/16 ,207.226.132.0/24 ,209.9.211.0/24 ,209.9.215.0/24 ,213.19.144.0/24 + ,213.19.153.0/24 ,213.244.140.0/24 ,221.122.63.0/24 ,221.122.64.0/24 ,221.122.88.64/27 + ,221.122.88.128/25 ,221.122.89.128/25 ,221.123.139.192/27,3.7.35.0/25 ,3.235.82.0/23 + ,3.235.96.0/23 ,4.34.125.128/25 ,4.35.64.128/25 ,8.5.128.0/23 ,15.220.80.0/24 + ,15.220.81.0/25 ,18.254.23.128/25 ,18.254.61.0/25 ,20.203.158.80/28 ,20.203.190.192/26 + ,50.239.202.0/23 ,50.239.204.0/24 ,52.61.100.128/25 ,64.125.62.0/24 ,64.211.144.0/24 + ,64.224.32.0/19 ,65.39.152.0/24 ,69.174.57.0/24 ,69.174.108.0/22 ,101.36.167.0/24 + ,101.36.170.0/23 ,103.122.166.0/23 ,111.33.115.0/25 ,111.33.181.0/25 ,115.110.154.192/26 + ,115.114.56.192/26 ,115.114.115.0/26 ,115.114.131.0/26 ,120.29.148.0/24 ,121.244.146.0/27 + ,134.224.0.0/16 ,137.66.128.0/17 ,144.195.0.0/16 ,147.124.96.0/19 ,149.137.0.0/17 + ,156.45.0.0/17 ,159.124.0.0/16 ,160.1.56.128/25 ,161.199.136.0/22 ,162.12.232.0/22 + ,162.255.36.0/22 ,165.254.88.0/23 ,166.108.64.0/18 , 168.140.0.0/17, 170.114.0.0/16 + ,173.231.80.0/20 ,192.204.12.0/22 ,198.251.128.0/17 ,202.177.207.128/27 ,203.200.219.128/27 + ,204.80.104.0/21 ,204.141.28.0/22 ,206.247.0.0/16 ,207.226.132.0/24 ,209.9.211.0/24 + ,209.9.215.0/24 ,213.19.144.0/24 ,213.19.153.0/24 ,213.244.140.0/24 ,221.122.63.0/24 + ,221.122.64.0/24 ,221.122.88.64/27 ,221.122.88.128/25 ,221.122.89.128/25 ,221.123.139.192/27 + ,52.84.151.0/24 ,170.114.45.0/24 ,170.114.46.0/24\",\n \"zappDataBlobV6\" + : \"2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30C0::/32,2600:9000:2600::/48,2620:123:2000::/40,2407:30c0:180::/48,2407:30c0:181::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 5,\n \"appVersion\" : 0,\n \"appSvcId\" + : 123456,\n \"appName\" : \"Microsoft Teams\",\n \"active\" : true,\n \"uid\" + : \"33f85c91-598b-4db6-8f12-b74116ea3560\",\n \"appDataBlob\" : [ {\n \"proto\" + : \"UDP\",\n \"port\" : \"3478,3479,3480,3481\",\n \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"52.112.0.0/14,52.122.0.0/15,52.238.119.141/32,52.244.160.207/32,40.72.124.128/28,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"UDP\",\n @@ -226,19 +292,22 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"2603:1027::/48,2603:1037::/48,2603:1047::/48,2603:1057::/48,2603:1063::/38,2620:1ec:6::/48,2620:1ec:40::/42,2406:e500:4a00::/39\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"16327\",\n \"editedBy\" - : \"0\",\n \"editedTimestamp\" : \"1734282130\",\n \"version\" : 0\n}, {\n - \ \"id\" : 7,\n \"appVersion\" : 0,\n \"appSvcId\" : 310,\n \"appName\" - : \"Microsoft SharePoint\",\n \"active\" : true,\n \"uid\" : \"CC84C4F3-DEB3-497B-ABBA-A9F36FF690C5\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n - \ \"ipaddr\" : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n + : \"0\",\n \"editedTimestamp\" : \"1734282130\",\n \"zappDataBlob\" : \"52.112.0.0/14,52.122.0.0/15,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21,52.112.0.0/14,52.122.0.0/15,52.238.119.141/32,52.244.160.207/32,40.72.124.128/28,42.159.34.32/27,42.159.34.64/27,42.159.34.96/28,42.159.162.32/27,42.159.162.64/27,42.159.162.96/28,159.27.160.0/21\",\n + \ \"zappDataBlobV6\" : \"2603:1063::/38,2406:e500:4a00::/39,2603:1027::/48,2603:1037::/48,2603:1047::/48,2603:1057::/48,2603:1063::/38,2620:1ec:6::/48,2620:1ec:40::/42,2406:e500:4a00::/39\",\n + \ \"version\" : 0\n}, {\n \"id\" : 7,\n \"appVersion\" : 0,\n \"appSvcId\" + : 310,\n \"appName\" : \"Microsoft SharePoint\",\n \"active\" : true,\n + \ \"uid\" : \"CC84C4F3-DEB3-497B-ABBA-A9F36FF690C5\",\n \"appDataBlob\" : + [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \"ipaddr\" + : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n \ \"port\" : \"443,80\",\n \"ipaddr\" : \"2603:1061:1300::/40,2620:1ec:8f8::/46,2620:1ec:908::/46,2a01:111:f402::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714801\",\n \"version\" : 0\n}, {\n \"id\" - : 9,\n \"appVersion\" : 0,\n \"appSvcId\" : 340,\n \"appName\" : \"Microsoft - Exchange\",\n \"active\" : true,\n \"uid\" : \"ED02E0D4-5BD8-498D-AAD7-4BC0EA20817F\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n - \ \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n + \ \"editedTimestamp\" : \"1730714801\",\n \"zappDataBlob\" : \"13.107.136.0/22,40.108.128.0/17,52.104.0.0/14,104.146.128.0/17,150.171.40.0/22\",\n + \ \"zappDataBlobV6\" : \"2603:1061:1300::/40,2620:1ec:8f8::/46,2620:1ec:908::/46,2a01:111:f402::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 9,\n \"appVersion\" : 0,\n \"appSvcId\" + : 340,\n \"appName\" : \"Microsoft Exchange\",\n \"active\" : true,\n \"uid\" + : \"ED02E0D4-5BD8-498D-AAD7-4BC0EA20817F\",\n \"appDataBlob\" : [ {\n \"proto\" + : \"TCP\",\n \"port\" : \"443,80\",\n \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"443\",\n \ \"ipaddr\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n @@ -246,20 +315,23 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"443\",\n \ \"ipaddr\" : \"2603:1006::/40,2603:1016::/36,2603:1026::/36,2603:1036::/36,2603:1046::/36,2603:1056::/36,2620:1ec:4::152/128,2620:1ec:4::153/128,2620:1ec:c::10/128,2620:1ec:c::11/128,2620:1ec:d::10/128,2620:1ec:d::11/128,2620:1ec:8f0::/46,2620:1ec:900::/46,2620:1ec:a92::152/128,2620:1ec:a92::153/128\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714824\",\n \"version\" : 0\n}, {\n \"id\" - : 11,\n \"appVersion\" : 0,\n \"appSvcId\" : 370,\n \"appName\" : \"M365\",\n - \ \"active\" : true,\n \"uid\" : \"490824C4-0E74-460C-A528-C56CF0376901\",\n + \ \"editedTimestamp\" : \"1730714824\",\n \"zappDataBlob\" : \"13.107.6.152/31,13.107.18.10/31,13.107.128.0/22,23.103.160.0/20,40.96.0.0/13,40.104.0.0/15,52.96.0.0/14,131.253.33.215/32,132.245.0.0/16,150.171.32.0/22,204.79.197.215/32\",\n + \ \"zappDataBlobV6\" : \"2603:1006::/40,2603:1016::/36,2603:1026::/36,2603:1036::/36,2603:1046::/36,2603:1056::/36,2620:1ec:4::152/128,2620:1ec:4::153/128,2620:1ec:c::10/128,2620:1ec:c::11/128,2620:1ec:d::10/128,2620:1ec:d::11/128,2620:1ec:8f0::/46,2620:1ec:900::/46,2620:1ec:a92::152/128,2620:1ec:a92::153/128\",\n + \ \"version\" : 0\n}, {\n \"id\" : 11,\n \"appVersion\" : 0,\n \"appSvcId\" + : 370,\n \"appName\" : \"M365\",\n \"active\" : true,\n \"uid\" : \"490824C4-0E74-460C-A528-C56CF0376901\",\n \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443,80\",\n \ \"ipaddr\" : \"13.107.6.171/32,13.107.18.15/32,13.107.140.6/32,52.108.0.0/14,52.244.37.168/32,20.20.32.0/19,20.190.128.0/18,20.231.128.0/19,40.126.0.0/18\",\n \ \"fqdn\" : \"\"\n } ],\n \"appDataBlobV6\" : [ {\n \"proto\" : \"TCP\",\n \ \"port\" : \"443,80\",\n \"ipaddr\" : \"2603:1006:1400::/40,2603:1016:2400::/40,2603:1026:2400::/40,2603:1036:2400::/40,2603:1046:1400::/40,2603:1056:1400::/40,2603:1063:2000::/38,2620:1ec:c::15/128,2620:1ec:8fc::6/128,2620:1ec:a92::171/128,2a01:111:f100:2000::a83e:3019/128,2a01:111:f100:2002::8975:2d79/128,2a01:111:f100:2002::8975:2da8/128,2a01:111:f100:7000::6fdd:6cd5/128,2a01:111:f100:a004::bfeb:88cf/128,2603:1006:2000::/48,2603:1007:200::/48,2603:1016:1400::/48,2603:1017::/48,2603:1026:3000::/48,2603:1027:1::/48,2603:1036:3000::/48,2603:1037:1::/48,2603:1046:2000::/48,2603:1047:1::/48,2603:1056:2000::/48,2603:1057:2::/48\",\n \ \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n - \ \"editedTimestamp\" : \"1730714840\",\n \"version\" : 0\n}, {\n \"id\" - : 13,\n \"appVersion\" : 0,\n \"appSvcId\" : 410,\n \"appName\" : \"Windows - 365 & Azure Virtual Desktop\",\n \"active\" : true,\n \"uid\" : \"477C17C9-86AE-4477-B584-AD84329EBD0E\",\n - \ \"appDataBlob\" : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443\",\n - \ \"ipaddr\" : \"40.64.144.0/20\",\n \"fqdn\" : \"\"\n }, {\n \"proto\" - : \"TCP\",\n \"port\" : \"1688\",\n \"ipaddr\" : \"20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249\",\n + \ \"editedTimestamp\" : \"1730714840\",\n \"zappDataBlob\" : \"13.107.6.171/32,13.107.18.15/32,13.107.140.6/32,52.108.0.0/14,52.244.37.168/32,20.20.32.0/19,20.190.128.0/18,20.231.128.0/19,40.126.0.0/18\",\n + \ \"zappDataBlobV6\" : \"2603:1006:1400::/40,2603:1016:2400::/40,2603:1026:2400::/40,2603:1036:2400::/40,2603:1046:1400::/40,2603:1056:1400::/40,2603:1063:2000::/38,2620:1ec:c::15/128,2620:1ec:8fc::6/128,2620:1ec:a92::171/128,2a01:111:f100:2000::a83e:3019/128,2a01:111:f100:2002::8975:2d79/128,2a01:111:f100:2002::8975:2da8/128,2a01:111:f100:7000::6fdd:6cd5/128,2a01:111:f100:a004::bfeb:88cf/128,2603:1006:2000::/48,2603:1007:200::/48,2603:1016:1400::/48,2603:1017::/48,2603:1026:3000::/48,2603:1027:1::/48,2603:1036:3000::/48,2603:1037:1::/48,2603:1046:2000::/48,2603:1047:1::/48,2603:1056:2000::/48,2603:1057:2::/48\",\n + \ \"version\" : 0\n}, {\n \"id\" : 13,\n \"appVersion\" : 0,\n \"appSvcId\" + : 410,\n \"appName\" : \"Windows 365 & Azure Virtual Desktop\",\n \"active\" + : true,\n \"uid\" : \"477C17C9-86AE-4477-B584-AD84329EBD0E\",\n \"appDataBlob\" + : [ {\n \"proto\" : \"TCP\",\n \"port\" : \"443\",\n \"ipaddr\" : + \"40.64.144.0/20\",\n \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n + \ \"port\" : \"1688\",\n \"ipaddr\" : \"20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249\",\n \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"TCP\",\n \"port\" : \"80\",\n \ \"ipaddr\" : \"169.254.169.254,168.63.129.16\",\n \"fqdn\" : \"\"\n \ }, {\n \"proto\" : \"UDP\",\n \"port\" : \"3478\",\n \"ipaddr\" @@ -268,7 +340,9 @@ interactions: \ \"fqdn\" : \"\"\n }, {\n \"proto\" : \"UDP\",\n \"port\" : \"3478\",\n \ \"ipaddr\" : \"2603:1061:2010::/48,2603:1061:2011::/48\",\n \"fqdn\" : \"\"\n } ],\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\",\n \"editedTimestamp\" - : \"1751366285\",\n \"version\" : 0\n} ]" + : \"1751366285\",\n \"zappDataBlob\" : \"40.64.144.0/20,20.118.99.224,40.83.235.53,23.102.135.246,51.4.143.248,159.27.28.100,163.228.64.161,42.159.7.249,169.254.169.254,168.63.129.16,51.5.0.0/16\",\n + \ \"zappDataBlobV6\" : \"2603:1061:2010::/48,2603:1061:2011::/48\",\n \"version\" + : 0\n} ]" headers: cache-control: - no-cache @@ -277,7 +351,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:32 GMT + - Wed, 11 Feb 2026 02:36:21 GMT pragma: - no-cache server: @@ -291,25 +365,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '381' + - '164' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 576196d0-32d8-9571-8992-1c3bd9d7ba11 + - a3e5b389-92df-9929-b9e9-8db967ccb021 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '96' + - '88' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '61' + - '31' x-ratelimit-reset: - - '2128' + - '1419' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -329,7 +403,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/webAppService/listByCompany?search=test response: @@ -343,7 +417,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:32 GMT + - Wed, 11 Feb 2026 02:36:21 GMT pragma: - no-cache server: @@ -357,25 +431,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '240' + - '165' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - bb5cf38a-14f0-9c03-993e-8ea3762521c8 + - 8fa297a4-9bbc-9e50-bfa3-6b48c83afa8e x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '89' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '60' + - '30' x-ratelimit-reset: - - '2128' + - '1419' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestWebPolicy.yaml b/tests/integration/zcc/cassettes/TestWebPolicy.yaml new file mode 100644 index 00000000..abfd09d6 --- /dev/null +++ b/tests/integration/zcc/cassettes/TestWebPolicy.yaml @@ -0,0 +1,1621 @@ +interactions: +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany + response: + body: + string: '[ ]' + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:22 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '339' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - 01727359-f7b0-9674-9625-a0022fc0dd8c + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '86' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '29' + x-ratelimit-reset: + - '1419' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=10 + response: + body: + string: '[ ]' + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:22 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '327' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - dbe93b24-8594-90df-88b2-8e36b92ab6b4 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '87' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '28' + x-ratelimit-reset: + - '1418' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?deviceType=3 + response: + body: + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"disableLoopBackRestriction\" + : 0.0,\n \"removeExemptedContainers\" : 0.0,\n \"overrideWPAD\" : 0.0,\n + \ \"restartWinHttpSvc\" : 0.0,\n \"cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" + : 1.0,\n \"pacType\" : 1.0,\n \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"wfpDriver\" : 1.0,\n \"flowLoggerConfig\" : \"\",\n \"triggerDomainProfleDetection\" + : 0.0,\n \"installWindowsFirewallInboundRule\" : 1.0,\n \"captivePortalConfig\" + : \"{\\\"automaticCapture\\\":1,\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":\\\"10\\\",\\\"enableEmbeddedCaptivePortal\\\":0}\",\n + \ \"enableZscalerFirewall\" : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n + \ \"captivePortalUrlId\" : 1.0,\n \"id\" : 24939.0,\n \"name\" : \"SGIOLab\",\n + \ \"description\" : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n + \ \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" + : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n + \ \"name\" : \"SGIO-Tunnel2.0\",\n \"conditionType\" : 1.0,\n \"dnsServers\" + : \"\",\n \"dnsSearchDomains\" : \"\",\n \"enableLWFDriver\" : \"1\",\n + \ \"hostname\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"trustedSubnets\" + : \"\",\n \"trustedGateways\" : \"\",\n \"trustedDhcpServers\" : \"\",\n + \ \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" : false,\n + \ \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" : [ {\n + \ \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ ],\n \"policyExtension\" : {\n + \ \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\" : \"\",\n + \ \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\":\"REDACTED_NONCE\",\n + \ \"machineIdpAuth\" : true,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"1\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 24939.0,\n \"enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" + : true,\n \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\" + : false\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n + \ \"zccFailCloseSettingsIpBypasses\" : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"24939\",\n \"enableZiaDR\" : false,\n \"enableZpaDR\" + : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" + : false,\n \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n + \ \"ziaDomainName\" : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" + : \"\",\n \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n + \ \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" + : false\n },\n \"deviceType\" : \"DEVICE_TYPE_WINDOWS\"\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"install_ssl_certs\" : 0.0,\n \"disableLoopBackRestriction\" : 0.0,\n + \ \"removeExemptedContainers\" : 1.0,\n \"overrideWPAD\" : 0.0,\n \"restartWinHttpSvc\" + : 0.0,\n \"cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" : 0.0,\n \"pacType\" + : 1.0,\n \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" : -1.0,\n + \ \"wfpDriver\" : 0.0,\n \"triggerDomainProfleDetection\" : 0.0,\n \"installWindowsFirewallInboundRule\" + : 1.0,\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"enableZscalerFirewall\" : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n + \ \"id\" : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default + Policy\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n + \ \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateId\" + : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" + : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"packetTunnelExcludeList\" + : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_WINDOWS\"\n} ]" + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:22 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '248' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - 1ee77d1f-d5e1-9238-b6da-39fa444fa674 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '89' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '27' + x-ratelimit-reset: + - '1418' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?deviceType=4 + response: + body: + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"addIfscopeRoute\" + : \"0\",\n \"clearArpCache\" : \"0\",\n \"cacheSystemProxy\" : \"0\",\n + \ \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\",\n + \ \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\" + : \"1\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\" + : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" + : 26707.0,\n \"name\" : \"ZTunnel2.0\",\n \"description\" : \"\",\n \"pac_url\" + : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n + \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reauth_period\" : \"12\",\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"onNetPolicy\" : + {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n \"name\" : \"SGIO-Tunnel2.0\",\n + \ \"conditionType\" : 1.0,\n \"dnsServers\" : \"\",\n \"dnsSearchDomains\" + : \"\",\n \"enableLWFDriver\" : \"1\",\n \"hostname\" : \"\",\n \"resolvedIpsForHostname\" + : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" : \"\",\n + \ \"trustedDhcpServers\" : \"\",\n \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" + : false,\n \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" + : [ {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 733.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"1\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"1\",\n \"enableServiceStatusNotification\" : \"1\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"25145\",\n \"editedBy\" : \"54023\"\n },\n + \ \"notificationTemplateId\" : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n + \ \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ {\n + \ \"id\" : \"5807211\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2025-08-26 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n + \ }, {\n \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\" + : \"1\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"1\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 26707.0,\n \"enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" + : true,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n + \ \"zccFailCloseSettingsIpBypasses\" : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"26707\",\n \"enableZiaDR\" : false,\n \"enableZpaDR\" + : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" + : false,\n \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n + \ \"ziaDomainName\" : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" + : \"\",\n \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n + \ \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" + : false\n },\n \"deviceType\" : \"DEVICE_TYPE_MAC\",\n \"userIds\" : [ + \"5807211\", \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n \"addIfscopeRoute\" + : \"0\",\n \"clearArpCache\" : \"0\",\n \"cacheSystemProxy\" : \"0\",\n + \ \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\",\n + \ \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\" + : \"0\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\" + : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" + : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default Policy\",\n + \ \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" + : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_MAC\"\n} ]" + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:23 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '235' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - 56c13223-394b-92b0-8267-3f674964f275 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '88' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '26' + x-ratelimit-reset: + - '1417' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?deviceType=1 + response: + body: + string: "[ {\n \"passcode\" : \"\",\n \"logout_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"showVPNTunNotification\" : 0.0,\n + \ \"useTunnelSDK4_3\" : 0.0,\n \"ipv6Mode\" : 4.0,\n \"id\" : 0.0,\n \"name\" + : \"Default\",\n \"description\" : \"Default Policy\",\n \"pac_url\" : \"\",\n + \ \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" + : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n + \ \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n + \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : + [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_IOS\"\n} ]" + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:23 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '177' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - 17a8c014-4321-9645-92cc-1c0a2213ab08 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '85' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '25' + x-ratelimit-reset: + - '1417' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?deviceType=2 + response: + body: + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"wifi_ssid\" : \"\",\n \"install_ssl_certs\" + : 1.0,\n \"enforced\" : 0.0,\n \"quota_in_roaming\" : 0.0,\n \"limit\" + : 1.0,\n \"billing_day\" : 1.0,\n \"allowed_apps\" : \"\",\n \"bypass_android_apps\" + : \"\",\n \"bypass_mms_apps\" : 0.0,\n \"custom_text\" : \"\",\n \"enableVerboseLog\" + : \"0\",\n \"cacheSystemProxy\" : 0.0,\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"prioritizeIPv4\" : 0.0,\n \"id\" : 171803.0,\n \"name\" : \"AndroidPolicy01\",\n + \ \"description\" : \"\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n \"ruleOrder\" + : 1.0,\n \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : + 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\" : + 6.2718389E7,\n \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\",\n + \ \"active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n }, {\n + \ \"id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\",\n + \ \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"lastModification\" + : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\",\n + \ \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26 + 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n }, {\n + \ \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 1.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\":1}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 171803.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_ANDROID\",\n \"groupIds\" : [ \"62718389\", + \"62718414\" ],\n \"userIds\" : [ \"5807211\", \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"wifi_ssid\" : \"\",\n \"install_ssl_certs\" : 0.0,\n \"enforced\" : + 0.0,\n \"quota_in_roaming\" : 0.0,\n \"limit\" : 1.0,\n \"billing_day\" + : 1.0,\n \"allowed_apps\" : \"\",\n \"bypass_android_apps\" : \"\",\n \"bypass_mms_apps\" + : 0.0,\n \"custom_text\" : \"\",\n \"cacheSystemProxy\" : 0.0,\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"prioritizeIPv4\" : 0.0,\n \"id\" : 0.0,\n \"name\" : \"Default\",\n + \ \"description\" : \"Default Policy\",\n \"pac_url\" : \"\",\n \"active\" + : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n + \ \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n + \ \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n + \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : + [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_ANDROID\"\n} ]" + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:23 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '221' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - ca2b855d-9963-92af-9a1b-d7964e59ef19 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '88' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '24' + x-ratelimit-reset: + - '1417' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?deviceType=5 + response: + body: + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"id\" + : 26709.0,\n \"name\" : \"Linux Default\",\n \"description\" : \"\",\n \"pac_url\" + : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n + \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reauth_period\" : \"12\",\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"onNetPolicy\" : + {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n \"name\" : \"SGIO-Tunnel2.0\",\n + \ \"conditionType\" : 1.0,\n \"dnsServers\" : \"\",\n \"dnsSearchDomains\" + : \"\",\n \"enableLWFDriver\" : \"1\",\n \"hostname\" : \"\",\n \"resolvedIpsForHostname\" + : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" : \"\",\n + \ \"trustedDhcpServers\" : \"\",\n \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" + : false,\n \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" + : [ {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ ],\n \"policyExtension\" : {\n + \ \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\" : \"\",\n + \ \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"machineIdpAuth\" + : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"0\",\n + \ \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"enableSetProxyOnVPNAdapters\" + : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\" + : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\" : + \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\" + : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\" + : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" + : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" + : 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 26709.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": + {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_LINUX\"\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"install_ssl_certs\" : 1.0,\n \"id\" : 171799.0,\n \"name\" : \"LinuxPolicy01\",\n + \ \"description\" : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n + \ \"ruleOrder\" : 2.0,\n \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" + : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 1.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\" : + 6.2718389E7,\n \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\",\n + \ \"active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n }, {\n + \ \"id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\",\n + \ \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"lastModification\" + : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 1.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\",\n + \ \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26 + 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n }, {\n + \ \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 1.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\":1}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 171799.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":1}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"171799\",\n \"enableZiaDR\" : true,\n \"enableZpaDR\" + : true,\n \"ziaDRMethod\" : 2.0,\n \"ziaCustomDbUrl\" : \"https://test.com\",\n + \ \"useZiaGlobalDb\" : true,\n \"ziaGlobalDbUrl\" : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n + \ \"ziaGlobalDbUrlv2\" : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n + \ \"ziaDomainName\" : \"https://test.com\",\n \"ziaRSAPubKeyName\" : + \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\" : \"https://test.com\",\n + \ \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" + : true,\n \"allowZpaTest\" : true\n },\n \"deviceType\" : \"DEVICE_TYPE_LINUX\",\n + \ \"groupIds\" : [ \"62718389\", \"62718414\" ],\n \"userIds\" : [ \"5807211\", + \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n \"id\" + : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default Policy\",\n + \ \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 3.0,\n \"logMode\" + : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_LINUX\"\n} ]" + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:24 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '410' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - 0822e4ef-e9c3-94f9-ba5d-7a04bb108381 + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '87' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '23' + x-ratelimit-reset: + - '1416' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2' + Content-Type: + - application/json + User-Agent: + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 + method: GET + uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?search=test + response: + body: + string: '[ ]' + headers: + cache-control: + - no-cache + content-encoding: + - gzip + content-type: + - application/json;charset=UTF-8 + date: + - Wed, 11 Feb 2026 02:36:24 GMT + pragma: + - no-cache + server: + - Zscaler + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '165' + x-frame-options: + - SAMEORIGIN + x-oneapi-host: + - https://apiusw2.zsapi.net + x-oneapi-request-id: + - fbd4db86-f30c-92ec-8866-4fb00af3d71b + x-oneapi-version: + - 109.1.111 + x-rate-limit-remaining: + - '86' + x-ratelimit-limit: + - 100, 100;w=3600, 100;w=3600 + x-ratelimit-remaining: + - '22' + x-ratelimit-reset: + - '1416' + x-transaction-id: + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/zcc/cassettes/TestWebPolicyCRUD.yaml b/tests/integration/zcc/cassettes/TestWebPolicyCRUD.yaml index 015a489f..60c026c0 100644 --- a/tests/integration/zcc/cassettes/TestWebPolicyCRUD.yaml +++ b/tests/integration/zcc/cassettes/TestWebPolicyCRUD.yaml @@ -14,7 +14,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/edit response: @@ -28,7 +28,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:33 GMT + - Wed, 11 Feb 2026 02:36:27 GMT pragma: - no-cache server: @@ -42,25 +42,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '177' + - '168' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 8767724f-34ea-9b4e-ae52-da1a08a274a9 + - 6f260256-2bfd-98ac-89a2-d5488e35cff3 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '84' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '66' + - '13' x-ratelimit-reset: - - '1227' + - '1413' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zcc/cassettes/TestWebPolicyExtended.yaml b/tests/integration/zcc/cassettes/TestWebPolicyExtended.yaml index 8c0fe15a..5b261a2e 100644 --- a/tests/integration/zcc/cassettes/TestWebPolicyExtended.yaml +++ b/tests/integration/zcc/cassettes/TestWebPolicyExtended.yaml @@ -13,81 +13,78 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=5&deviceType=1 response: body: - string: "[ {\n \"passcode\" : \"\",\n \"logout_password\" : \"REDACTED\",\n\ - \ \"disable_password\" : \"REDACTED\",\n \"showVPNTunNotification\" : 0.0,\n\ - \ \"useTunnelSDK4_3\" : 0.0,\n \"ipv6Mode\" : 4.0,\n \"id\" : 0.0,\n \"\ - name\" : \"Default\",\n \"description\" : \"Default Policy\",\n \"pac_url\"\ - \ : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n\ - \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" :\ - \ 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\ - \",\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"\ - useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" : false,\n\ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0,\n \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"\ - 0\"\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n \"\ - enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"passcode\" : \"\",\n \"logout_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"showVPNTunNotification\" : 0.0,\n + \ \"useTunnelSDK4_3\" : 0.0,\n \"ipv6Mode\" : 4.0,\n \"id\" : 0.0,\n \"name\" + : \"Default\",\n \"description\" : \"Default Policy\",\n \"pac_url\" : \"\",\n + \ \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" + : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n + \ \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n + \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : + [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_IOS\"\n} ]" headers: cache-control: - no-cache @@ -96,37 +93,39 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:30 GMT + - Wed, 11 Feb 2026 02:36:25 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '186' + - '175' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - f6fb960a-6889-9fa8-adb9-8b0c091626c6 + - fa48e49f-44fc-9889-9724-737db18432a8 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '92' + - '84' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '74' + - '21' x-ratelimit-reset: - - '1230' + - '1416' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -146,180 +145,174 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=5&deviceType=2 response: body: - string: "[ {\n \"logout_password\" : \"REDACTED\",\n \"uninstall_password\"\ - \ : \"REDACTED\",\n \"disable_password\" : \"REDACTED\",\n \"wifi_ssid\"\ - \ : \"\",\n \"install_ssl_certs\" : 1.0,\n \"enforced\" : 0.0,\n \"quota_in_roaming\"\ - \ : 0.0,\n \"limit\" : 1.0,\n \"billing_day\" : 1.0,\n \"allowed_apps\"\ - \ : \"\",\n \"bypass_android_apps\" : \"\",\n \"bypass_mms_apps\" : 0.0,\n\ - \ \"custom_text\" : \"\",\n \"enableVerboseLog\" : \"0\",\n \"cacheSystemProxy\"\ - \ : 0.0,\n \"disableParallelIpv4AndIPv6\" : -1.0,\n \"prioritizeIPv4\" :\ - \ 0.0,\n \"id\" : 171803.0,\n \"name\" : \"AndroidPolicy01\",\n \"description\"\ - \ : \"\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n \"ruleOrder\" : 1.0,\n\ - \ \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n\ - \ \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" : \"0\"\ - ,\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n\ - \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\" : 6.2718389E7,\n\ - \ \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\",\n \"\ - active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n }, {\n \"\ - id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\"\ - ,\n \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"\ - lastModification\" : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \ - \ \"notificationTemplateContract\" : {\n \"id\" : 0.0,\n \"templateName\"\ - \ : \"Legacy Notification Settings\",\n \"defaultTemplate\" : \"1\",\n\ - \ \"enableClientNotification\" : \"0\",\n \"enableZiaNotification\"\ - \ : \"0\",\n \"enableAppUpdatesNotification\" : \"0\",\n \"enableServiceStatusNotification\"\ - \ : \"0\",\n \"enableNotificationForZPAReauth\" : \"1\",\n \"zpaReauthNotificationTime\"\ - \ : 5.0,\n \"customTimer\" : 5.0,\n \"ziaNotificationPersistant\" :\ - \ \"0\",\n \"enablePersistantNotification\" : \"0\",\n \"doNotDisturb\"\ - \ : \"0\",\n \"showDevicePostureFailureNotification\" : \"0\",\n \"\ - createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\"\ - \ : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\",\n \"tunnelZappTraffic\"\ - \ : 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\"\ - ,\n \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26\ - \ 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n },\ - \ {\n \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"\ - lastModification\" : \"2025-11-26 06:24:36.0\",\n \"active\" : 1.0,\n \ - \ \"companyId\" : \"4543\"\n } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\"\ - \ : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\"\ - ,\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"useV8JsEngine\"\ - \ : \"0\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 1.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\ - \":1}\",\n \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\"\ - \ : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n },\n \"trusted\" : {\n \"id\" : 0.0,\n \"\ - name\" : \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n\ - \ \"name\" : \"\"\n },\n \"splitVpnTrusted\" : {\n \ - \ \"id\" : 0.0,\n \"name\" : \"\"\n }\n },\n \"generateCliPasswordContract\"\ - \ : {\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\"\ - \ : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\"\ - \ : true,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"1\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n\ - \ \"enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n}, {\n\ - \ \"logout_password\" : \"REDACTED\",\n \"uninstall_password\" : \"REDACTED\"\ - ,\n \"disable_password\" : \"REDACTED\",\n \"wifi_ssid\" : \"\",\n \"install_ssl_certs\"\ - \ : 0.0,\n \"enforced\" : 0.0,\n \"quota_in_roaming\" : 0.0,\n \"limit\"\ - \ : 1.0,\n \"billing_day\" : 1.0,\n \"allowed_apps\" : \"\",\n \"bypass_android_apps\"\ - \ : \"\",\n \"bypass_mms_apps\" : 0.0,\n \"custom_text\" : \"\",\n \"cacheSystemProxy\"\ - \ : 0.0,\n \"disableParallelIpv4AndIPv6\" : -1.0,\n \"prioritizeIPv4\" :\ - \ 0.0,\n \"id\" : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"\ - Default Policy\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\"\ - \ : 2.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" :\ - \ 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\"\ - \ : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\"\ - \ : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateId\"\ - \ : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\"\ - \ : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"packetTunnelExcludeList\"\ - \ : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\ - \",\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"\ - useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" : false,\n\ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0,\n \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"\ - 0\"\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n \"\ - enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"wifi_ssid\" : \"\",\n \"install_ssl_certs\" + : 1.0,\n \"enforced\" : 0.0,\n \"quota_in_roaming\" : 0.0,\n \"limit\" + : 1.0,\n \"billing_day\" : 1.0,\n \"allowed_apps\" : \"\",\n \"bypass_android_apps\" + : \"\",\n \"bypass_mms_apps\" : 0.0,\n \"custom_text\" : \"\",\n \"enableVerboseLog\" + : \"0\",\n \"cacheSystemProxy\" : 0.0,\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"prioritizeIPv4\" : 0.0,\n \"id\" : 171803.0,\n \"name\" : \"AndroidPolicy01\",\n + \ \"description\" : \"\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n \"ruleOrder\" + : 1.0,\n \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : + 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\" : + 6.2718389E7,\n \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\",\n + \ \"active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n }, {\n + \ \"id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\",\n + \ \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"lastModification\" + : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\",\n + \ \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26 + 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n }, {\n + \ \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 1.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\":1}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 171803.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_ANDROID\",\n \"groupIds\" : [ \"62718389\", + \"62718414\" ],\n \"userIds\" : [ \"5807211\", \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"wifi_ssid\" : \"\",\n \"install_ssl_certs\" : 0.0,\n \"enforced\" : + 0.0,\n \"quota_in_roaming\" : 0.0,\n \"limit\" : 1.0,\n \"billing_day\" + : 1.0,\n \"allowed_apps\" : \"\",\n \"bypass_android_apps\" : \"\",\n \"bypass_mms_apps\" + : 0.0,\n \"custom_text\" : \"\",\n \"cacheSystemProxy\" : 0.0,\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"prioritizeIPv4\" : 0.0,\n \"id\" : 0.0,\n \"name\" : \"Default\",\n + \ \"description\" : \"Default Policy\",\n \"pac_url\" : \"\",\n \"active\" + : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n + \ \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n + \ \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n + \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : + [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_ANDROID\"\n} ]" headers: cache-control: - no-cache @@ -328,37 +321,39 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:30 GMT + - Wed, 11 Feb 2026 02:36:25 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '195' + - '204' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 562368c9-0a73-91ad-b7b1-67638b3a868b + - 59f56667-431a-9ecd-bbc3-26e1b87bfc7d x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '87' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '73' + - '20' x-ratelimit-reset: - - '1230' + - '1415' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -378,185 +373,275 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=5&deviceType=3 response: body: - string: "[ {\n \"logout_password\" : \"REDACTED\",\n \"uninstall_password\"\ - \ : \"REDACTED\",\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\"\ - \ : 1.0,\n \"disableLoopBackRestriction\" : 0.0,\n \"removeExemptedContainers\"\ - \ : 0.0,\n \"overrideWPAD\" : 0.0,\n \"restartWinHttpSvc\" : 0.0,\n \"\ - cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" : 1.0,\n \"pacType\" : 1.0,\n\ - \ \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" : -1.0,\n \"\ - wfpDriver\" : 1.0,\n \"flowLoggerConfig\" : \"\",\n \"triggerDomainProfleDetection\"\ - \ : 0.0,\n \"installWindowsFirewallInboundRule\" : 1.0,\n \"captivePortalConfig\"\ - \ : \"{\\\"automaticCapture\\\":1,\\\"enableCaptivePortalDetection\\\":1,\\\ - \"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":\\\"10\\\"\ - ,\\\"enableEmbeddedCaptivePortal\\\":0}\",\n \"enableZscalerFirewall\" :\ - \ \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n \"captivePortalUrlId\"\ - \ : 1.0,\n \"id\" : 24939.0,\n \"name\" : \"SGIOLab\",\n \"description\"\ - \ : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\"\ - \ : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" :\ - \ 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"name\" : \"\ - SGIO-Tunnel2.0\",\n \"conditionType\" : 0.0,\n \"enableLWFDriver\" :\ - \ \"1\",\n \"predefinedTrustedNetworks\" : false,\n \"predefinedTnAll\"\ - \ : false\n },\n \"notificationTemplateContract\" : {\n \"id\" : 0.0,\n\ - \ \"templateName\" : \"Legacy Notification Settings\",\n \"defaultTemplate\"\ - \ : \"1\",\n \"enableClientNotification\" : \"0\",\n \"enableZiaNotification\"\ - \ : \"0\",\n \"enableAppUpdatesNotification\" : \"0\",\n \"enableServiceStatusNotification\"\ - \ : \"0\",\n \"enableNotificationForZPAReauth\" : \"1\",\n \"zpaReauthNotificationTime\"\ - \ : 5.0,\n \"customTimer\" : 5.0,\n \"ziaNotificationPersistant\" :\ - \ \"0\",\n \"enablePersistantNotification\" : \"0\",\n \"doNotDisturb\"\ - \ : \"0\",\n \"showDevicePostureFailureNotification\" : \"0\",\n \"\ - createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\"\ - \ : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\",\n \"tunnelZappTraffic\"\ - \ : 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ ],\n \"policyExtension\"\ - \ : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\"\ - \ : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\":\"REDACTED_NONCE\"\ - ,\n \"machineIdpAuth\" : true,\n \"exitPassword\":\"REDACTED\",\n \ - \ \"useV8JsEngine\" : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n\ - \ \"zdDisablePassword\" : \"\",\n \"zpaDisablePassword\":\"REDACTED\"\ - ,\n \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" :\ - \ \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\"\ - \ : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\"\ - \ : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\"\ - \ : \"0\",\n \"zccRevertPassword\" : \"\",\n \"zpaAuthExpOnSleep\" :\ - \ 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\"\ - \ : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\"\ - \ : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"\ - packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n\ - \ \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"1\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" : true,\n \ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\ - \":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"1\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n\ - \ \"enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n}, {\n\ - \ \"logout_password\" : \"REDACTED\",\n \"uninstall_password\" : \"REDACTED\"\ - ,\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n\ - \ \"disableLoopBackRestriction\" : 0.0,\n \"removeExemptedContainers\" :\ - \ 1.0,\n \"overrideWPAD\" : 0.0,\n \"restartWinHttpSvc\" : 0.0,\n \"cacheSystemProxy\"\ - \ : 0.0,\n \"prioritizeIPv4\" : 0.0,\n \"pacType\" : 1.0,\n \"pacDataPath\"\ - \ : \"\",\n \"disableParallelIpv4AndIPv6\" : -1.0,\n \"wfpDriver\" : 0.0,\n\ - \ \"triggerDomainProfleDetection\" : 0.0,\n \"installWindowsFirewallInboundRule\"\ - \ : 1.0,\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\ - \":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\ - \"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n \"enableZscalerFirewall\"\ - \ : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n \"id\" : 0.0,\n \"name\"\ - \ : \"Default\",\n \"description\" : \"Default Policy\",\n \"pac_url\" :\ - \ \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" : 3.0,\n\ - \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" :\ - \ 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\ - \",\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"\ - useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" : false,\n\ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0,\n \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"\ - 0\"\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n \"\ - enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"disableLoopBackRestriction\" + : 0.0,\n \"removeExemptedContainers\" : 0.0,\n \"overrideWPAD\" : 0.0,\n + \ \"restartWinHttpSvc\" : 0.0,\n \"cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" + : 1.0,\n \"pacType\" : 1.0,\n \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"wfpDriver\" : 1.0,\n \"flowLoggerConfig\" : \"\",\n \"triggerDomainProfleDetection\" + : 0.0,\n \"installWindowsFirewallInboundRule\" : 1.0,\n \"captivePortalConfig\" + : \"{\\\"automaticCapture\\\":1,\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":\\\"10\\\",\\\"enableEmbeddedCaptivePortal\\\":0}\",\n + \ \"enableZscalerFirewall\" : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n + \ \"captivePortalUrlId\" : 1.0,\n \"id\" : 24939.0,\n \"name\" : \"SGIOLab\",\n + \ \"description\" : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n + \ \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" + : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n + \ \"name\" : \"SGIO-Tunnel2.0\",\n \"conditionType\" : 1.0,\n \"dnsServers\" + : \"\",\n \"dnsSearchDomains\" : \"\",\n \"enableLWFDriver\" : \"1\",\n + \ \"hostname\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"trustedSubnets\" + : \"\",\n \"trustedGateways\" : \"\",\n \"trustedDhcpServers\" : \"\",\n + \ \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" : false,\n + \ \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" : [ {\n + \ \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ ],\n \"policyExtension\" : {\n + \ \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\" : \"\",\n + \ \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\":\"REDACTED_NONCE\",\n + \ \"machineIdpAuth\" : true,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"1\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 24939.0,\n \"enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" + : true,\n \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\" + : false\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n + \ \"zccFailCloseSettingsIpBypasses\" : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"24939\",\n \"enableZiaDR\" : false,\n \"enableZpaDR\" + : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" + : false,\n \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n + \ \"ziaDomainName\" : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" + : \"\",\n \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n + \ \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" + : false\n },\n \"deviceType\" : \"DEVICE_TYPE_WINDOWS\"\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"install_ssl_certs\" : 0.0,\n \"disableLoopBackRestriction\" : 0.0,\n + \ \"removeExemptedContainers\" : 1.0,\n \"overrideWPAD\" : 0.0,\n \"restartWinHttpSvc\" + : 0.0,\n \"cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" : 0.0,\n \"pacType\" + : 1.0,\n \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" : -1.0,\n + \ \"wfpDriver\" : 0.0,\n \"triggerDomainProfleDetection\" : 0.0,\n \"installWindowsFirewallInboundRule\" + : 1.0,\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"enableZscalerFirewall\" : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n + \ \"id\" : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default + Policy\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n + \ \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateId\" + : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" + : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"packetTunnelExcludeList\" + : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_WINDOWS\"\n} ]" headers: cache-control: - no-cache @@ -565,37 +650,39 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:31 GMT + - Wed, 11 Feb 2026 02:36:25 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '195' + - '253' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 366907d7-434b-981e-bdb2-57c04458db0f + - 2b0f7d63-2694-9f85-84eb-5f06fef32059 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '86' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '72' + - '19' x-ratelimit-reset: - - '1230' + - '1415' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -615,185 +702,276 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=5&deviceType=4 response: body: - string: "[ {\n \"logout_password\" : \"REDACTED\",\n \"uninstall_password\"\ - \ : \"REDACTED\",\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\"\ - \ : 1.0,\n \"addIfscopeRoute\" : \"0\",\n \"clearArpCache\" : \"0\",\n \ - \ \"cacheSystemProxy\" : \"0\",\n \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\"\ - ,\n \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\"\ - \ : \"1\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\"\ - \ : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\ - \":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\ - \"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n \"browserAuthType\"\ - \ : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" : 26707.0,\n \"name\"\ - \ : \"ZTunnel2.0\",\n \"description\" : \"\",\n \"pac_url\" : \"\",\n \"\ - active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\"\ - \ : 0.0,\n \"logFileSize\" : 100.0,\n \"reauth_period\" : \"12\",\n \"\ - reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" : 0.0,\n\ - \ \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : 0.0,\n\ - \ \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"onNetPolicy\" : {\n \ - \ \"id\" : \"11925\",\n \"name\" : \"SGIO-Tunnel2.0\",\n \"conditionType\"\ - \ : 0.0,\n \"enableLWFDriver\" : \"1\",\n \"predefinedTrustedNetworks\"\ - \ : false,\n \"predefinedTnAll\" : false\n },\n \"notificationTemplateContract\"\ - \ : {\n \"id\" : 733.0,\n \"templateName\" : \"Legacy Notification Settings\"\ - ,\n \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"\ - 1\",\n \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\"\ - \ : \"1\",\n \"enableServiceStatusNotification\" : \"1\",\n \"enableNotificationForZPAReauth\"\ - \ : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\"\ - \ : 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\"\ - \ : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\"\ - \ : \"0\",\n \"createdBy\" : \"25145\",\n \"editedBy\" : \"54023\"\n\ - \ },\n \"notificationTemplateId\" : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\"\ - ,\n \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [\ - \ {\n \"id\" : \"5807211\",\n \"loginName\" : \"REDACTED\",\n \"\ - lastModification\" : \"2025-08-26 18:57:35.0\",\n \"active\" : 1.0,\n \ - \ \"companyId\" : \"4543\"\n }, {\n \"id\" : \"35129345\",\n \"loginName\"\ - \ : \"REDACTED\",\n \"lastModification\" : \"2025-11-26 06:24:36.0\",\n\ - \ \"active\" : 1.0,\n \"companyId\" : \"4543\"\n } ],\n \"policyExtension\"\ - \ : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\"\ - \ : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\"\ - ,\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"useV8JsEngine\"\ - \ : \"0\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"1\",\n \"switchFocusToNotification\" : \"1\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"1\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" : true,\n \ - \ \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\"\ - \ : true,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\ - \":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"1\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n\ - \ \"enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n}, {\n\ - \ \"logout_password\" : \"REDACTED\",\n \"uninstall_password\" : \"REDACTED\"\ - ,\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n\ - \ \"addIfscopeRoute\" : \"0\",\n \"clearArpCache\" : \"0\",\n \"cacheSystemProxy\"\ - \ : \"0\",\n \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\"\ - ,\n \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\"\ - \ : \"0\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\"\ - \ : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\ - \":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\ - \"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n \"browserAuthType\"\ - \ : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" : 0.0,\n \"name\"\ - \ : \"Default\",\n \"description\" : \"Default Policy\",\n \"pac_url\" :\ - \ \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" : 3.0,\n\ - \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" :\ - \ 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\ - \",\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"\ - useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" : false,\n\ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0,\n \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"\ - 0\"\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n \"\ - enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"addIfscopeRoute\" + : \"0\",\n \"clearArpCache\" : \"0\",\n \"cacheSystemProxy\" : \"0\",\n + \ \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\",\n + \ \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\" + : \"1\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\" + : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" + : 26707.0,\n \"name\" : \"ZTunnel2.0\",\n \"description\" : \"\",\n \"pac_url\" + : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n + \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reauth_period\" : \"12\",\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"onNetPolicy\" : + {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n \"name\" : \"SGIO-Tunnel2.0\",\n + \ \"conditionType\" : 1.0,\n \"dnsServers\" : \"\",\n \"dnsSearchDomains\" + : \"\",\n \"enableLWFDriver\" : \"1\",\n \"hostname\" : \"\",\n \"resolvedIpsForHostname\" + : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" : \"\",\n + \ \"trustedDhcpServers\" : \"\",\n \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" + : false,\n \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" + : [ {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 733.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"1\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"1\",\n \"enableServiceStatusNotification\" : \"1\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"25145\",\n \"editedBy\" : \"54023\"\n },\n + \ \"notificationTemplateId\" : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n + \ \"tunnelZappTraffic\" : 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ {\n + \ \"id\" : \"5807211\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2025-08-26 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n + \ }, {\n \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\" + : \"1\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"1\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 26707.0,\n \"enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" + : true,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n + \ \"zccFailCloseSettingsIpBypasses\" : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"26707\",\n \"enableZiaDR\" : false,\n \"enableZpaDR\" + : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" + : false,\n \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n + \ \"ziaDomainName\" : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" + : \"\",\n \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n + \ \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" + : false\n },\n \"deviceType\" : \"DEVICE_TYPE_MAC\",\n \"userIds\" : [ + \"5807211\", \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n \"addIfscopeRoute\" + : \"0\",\n \"clearArpCache\" : \"0\",\n \"cacheSystemProxy\" : \"0\",\n + \ \"dnsPriorityOrdering\" : \"State:/Network/Service/com.cisco.anyconnect/DNS\",\n + \ \"dnsPriorityOrderingForTrustedDnsCriteria\" : \"0\",\n \"enableZscalerFirewall\" + : \"0\",\n \"persistentZscalerFirewall\" : \"0\",\n \"enableApplicationBasedBypass\" + : \"0\",\n \"captivePortalConfig\" : \"{\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":10,\\\"enableEmbeddedCaptivePortal\\\":0,\\\"automaticCapture\\\":1}\",\n + \ \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"0\",\n \"id\" + : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default Policy\",\n + \ \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 2.0,\n \"logMode\" + : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_MAC\"\n} ]" headers: cache-control: - no-cache @@ -802,37 +980,39 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:31 GMT + - Wed, 11 Feb 2026 02:36:26 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '193' + - '237' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - c756306c-2c54-92a2-9982-4c302b93d7c7 + - 3ac719d6-c444-995e-a6da-4f379005de36 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '91' + - '83' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '71' + - '18' x-ratelimit-reset: - - '1229' + - '1415' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -852,254 +1032,348 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=5&deviceType=5 response: body: - string: "[ {\n \"logout_password\" : \"REDACTED\",\n \"uninstall_password\"\ - \ : \"REDACTED\",\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\"\ - \ : 1.0,\n \"id\" : 26709.0,\n \"name\" : \"Linux Default\",\n \"description\"\ - \ : \"\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n\ - \ \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n\ - \ \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" : \"0\"\ - ,\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n\ - \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"name\" : \"\ - SGIO-Tunnel2.0\",\n \"conditionType\" : 0.0,\n \"enableLWFDriver\" :\ - \ \"1\",\n \"predefinedTrustedNetworks\" : false,\n \"predefinedTnAll\"\ - \ : false\n },\n \"notificationTemplateContract\" : {\n \"id\" : 0.0,\n\ - \ \"templateName\" : \"Legacy Notification Settings\",\n \"defaultTemplate\"\ - \ : \"1\",\n \"enableClientNotification\" : \"0\",\n \"enableZiaNotification\"\ - \ : \"0\",\n \"enableAppUpdatesNotification\" : \"0\",\n \"enableServiceStatusNotification\"\ - \ : \"0\",\n \"enableNotificationForZPAReauth\" : \"1\",\n \"zpaReauthNotificationTime\"\ - \ : 5.0,\n \"customTimer\" : 5.0,\n \"ziaNotificationPersistant\" :\ - \ \"0\",\n \"enablePersistantNotification\" : \"0\",\n \"doNotDisturb\"\ - \ : \"0\",\n \"showDevicePostureFailureNotification\" : \"0\",\n \"\ - createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\"\ - \ : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\",\n \"tunnelZappTraffic\"\ - \ : 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ ],\n \"policyExtension\"\ - \ : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\"\ - \ : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"machineIdpAuth\"\ - \ : false,\n \"exitPassword\" : \"\",\n \"useV8JsEngine\" : \"0\",\n\ - \ \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\" : \"\",\n \ - \ \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\" : \"\",\n \ - \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \ - \ \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\"\ - \ : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"\ - 0\",\n \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\"\ - \ : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\"\ - \ : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\"\ - \ : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\"\ - ,\n \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\"\ - \ : 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\"\ - \ : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\ - \",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\ - \":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\"\ - \ : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n },\n \"trusted\" : {\n \"id\" : 0.0,\n \"\ - name\" : \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n\ - \ \"name\" : \"\"\n },\n \"splitVpnTrusted\" : {\n \ - \ \"id\" : 0.0,\n \"name\" : \"\"\n }\n },\n \"generateCliPasswordContract\"\ - \ : {\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\"\ - \ : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\"\ - \ : true,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsExitUninstallPassword\"\ - \ : \"\",\n \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n\ - \ \"zccFailCloseSettingsLockdownOnFirewallError\" : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\"\ - \ : 0.0,\n \"zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n\ - \ \"enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n}, {\n\ - \ \"logout_password\" : \"REDACTED\",\n \"uninstall_password\" : \"REDACTED\"\ - ,\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n\ - \ \"id\" : 171799.0,\n \"name\" : \"LinuxPolicy01\",\n \"description\"\ - \ : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n \"ruleOrder\"\ - \ : 2.0,\n \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\"\ - \ : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 1.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\"\ - \ : 6.2718389E7,\n \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\"\ - ,\n \"active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n },\ - \ {\n \"id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\"\ - ,\n \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"\ - lastModification\" : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \ - \ \"notificationTemplateContract\" : {\n \"id\" : 0.0,\n \"templateName\"\ - \ : \"Legacy Notification Settings\",\n \"defaultTemplate\" : \"1\",\n\ - \ \"enableClientNotification\" : \"0\",\n \"enableZiaNotification\"\ - \ : \"0\",\n \"enableAppUpdatesNotification\" : \"0\",\n \"enableServiceStatusNotification\"\ - \ : \"0\",\n \"enableNotificationForZPAReauth\" : \"1\",\n \"zpaReauthNotificationTime\"\ - \ : 5.0,\n \"customTimer\" : 5.0,\n \"ziaNotificationPersistant\" :\ - \ \"0\",\n \"enablePersistantNotification\" : \"0\",\n \"doNotDisturb\"\ - \ : \"0\",\n \"showDevicePostureFailureNotification\" : \"0\",\n \"\ - createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\"\ - \ : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\",\n \"tunnelZappTraffic\"\ - \ : 1.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\"\ - ,\n \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26\ - \ 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n },\ - \ {\n \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"\ - lastModification\" : \"2025-11-26 06:24:36.0\",\n \"active\" : 1.0,\n \ - \ \"companyId\" : \"4543\"\n } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\"\ - \ : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\"\ - ,\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"useV8JsEngine\"\ - \ : \"0\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 1.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\ - \":1}\",\n \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\"\ - \ : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n },\n \"trusted\" : {\n \"id\" : 0.0,\n \"\ - name\" : \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n\ - \ \"name\" : \"\"\n },\n \"splitVpnTrusted\" : {\n \ - \ \"id\" : 0.0,\n \"name\" : \"\"\n }\n },\n \"generateCliPasswordContract\"\ - \ : {\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\"\ - \ : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\"\ - \ : true,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":1}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"1\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : true,\n \ - \ \"enableZpaDR\" : true,\n \"ziaDRMethod\" : 2.0,\n \"ziaCustomDbUrl\"\ - \ : \"https://test.com\",\n \"useZiaGlobalDb\" : true,\n \"ziaGlobalDbUrl\"\ - \ : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n \"ziaGlobalDbUrlv2\"\ - \ : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n \"ziaDomainName\"\ - \ : \"https://test.com\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\"\ - \ : \"\",\n \"zpaDomainName\" : \"https://test.com\",\n \"zpaRSAPubKeyName\"\ - \ : \"\",\n \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : true,\n \ - \ \"allowZpaTest\" : true\n }\n}, {\n \"logout_password\" : \"REDACTED\"\ - ,\n \"uninstall_password\" : \"REDACTED\",\n \"disable_password\" : \"REDACTED\"\ - ,\n \"install_ssl_certs\" : 0.0,\n \"id\" : 0.0,\n \"name\" : \"Default\"\ - ,\n \"description\" : \"Default Policy\",\n \"pac_url\" : \"\",\n \"active\"\ - \ : 1.0,\n \"ruleOrder\" : 3.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n\ - \ \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" : \"0\",\n\ - \ \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n\ - \ \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" :\ - \ 0.0,\n \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\"\ - \ : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\ - \",\n \"machineIdpAuth\" : false,\n \"exitPassword\" : \"\",\n \"\ - useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\" : \"\",\n \"zdDisablePassword\"\ - \ : \"\",\n \"zpaDisablePassword\" : \"\",\n \"zdpDisablePassword\"\ - \ : \"\",\n \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" :\ - \ \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n \"useZscalerNotificationFramework\"\ - \ : \"0\",\n \"switchFocusToNotification\" : \"0\",\n \"fallbackToGatewayDomain\"\ - \ : \"1\",\n \"enableZCCRevert\" : \"0\",\n \"zccRevertPassword\" :\ - \ \"\",\n \"zpaAuthExpOnSleep\" : 0.0,\n \"zpaAuthExpOnSysRestart\"\ - \ : 0.0,\n \"zpaAuthExpOnNetIpChange\" : 0.0,\n \"zpaAuthExpOnWinLogonSession\"\ - \ : 0.0,\n \"zpaAuthExpOnWinSessionLock\" : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\"\ - \ : 0.0,\n \"packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\"\ - ,\n \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" : false,\n\ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"0\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0,\n \"browserAuthType\" : \"-1\",\n \"useDefaultBrowser\" : \"\ - 0\"\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n \"\ - enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"id\" + : 26709.0,\n \"name\" : \"Linux Default\",\n \"description\" : \"\",\n \"pac_url\" + : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n + \ \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reauth_period\" : \"12\",\n + \ \"reactivateWebSecurityMinutes\" : \"0\",\n \"highlightActiveControl\" + : 0.0,\n \"sendDisableServiceReason\" : 0.0,\n \"enableDeviceGroups\" : + 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" : [ ],\n \"onNetPolicy\" : + {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n \"name\" : \"SGIO-Tunnel2.0\",\n + \ \"conditionType\" : 1.0,\n \"dnsServers\" : \"\",\n \"dnsSearchDomains\" + : \"\",\n \"enableLWFDriver\" : \"1\",\n \"hostname\" : \"\",\n \"resolvedIpsForHostname\" + : \"\",\n \"trustedSubnets\" : \"\",\n \"trustedGateways\" : \"\",\n + \ \"trustedDhcpServers\" : \"\",\n \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" + : false,\n \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" + : [ {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 0.0,\n \"users\" : [ ],\n \"policyExtension\" : {\n + \ \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\" : \"\",\n + \ \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"machineIdpAuth\" + : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"0\",\n + \ \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"enableSetProxyOnVPNAdapters\" + : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\" + : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\" : + \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\" + : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\" + : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" + : \"0\",\n \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" + : 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 26709.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": + {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_LINUX\"\n}, {\n \"logout_password\":\"REDACTED\",\n + \ \"uninstall_password\":\"REDACTED\",\n \"disable_password\":\"REDACTED\",\n + \ \"install_ssl_certs\" : 1.0,\n \"id\" : 171799.0,\n \"name\" : \"LinuxPolicy01\",\n + \ \"description\" : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 0.0,\n + \ \"ruleOrder\" : 2.0,\n \"logMode\" : -1.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" + : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 1.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ {\n \"id\" : + 6.2718389E7,\n \"name\" : \"A001\",\n \"authType\" : \"SAFECHANNEL_DIR\",\n + \ \"active\" : 1.0,\n \"lastModification\" : \"1691828147\"\n }, {\n + \ \"id\" : 6.2718414E7,\n \"name\" : \"A000_test_1761418099964-test-1761429757931-test-1761429917892\",\n + \ \"authType\" : \"SAFECHANNEL_DIR\",\n \"active\" : 1.0,\n \"lastModification\" + : \"1761589274\"\n } ],\n \"deviceGroups\" : [ ],\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 1.0,\n \"groupAll\" : 0.0,\n \"users\" : [ {\n \"id\" : \"5807211\",\n + \ \"loginName\" : \"REDACTED\",\n \"lastModification\" : \"2025-08-26 + 18:57:35.0\",\n \"active\" : 1.0,\n \"companyId\" : \"4543\"\n }, {\n + \ \"id\" : \"35129345\",\n \"loginName\" : \"REDACTED\",\n \"lastModification\" + : \"2026-01-03 05:17:48.0\",\n \"active\" : 0.0,\n \"companyId\" : \"4543\"\n + \ } ],\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n + \ \"vpnGateways\" : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\" : \"\",\n + \ \"machineIdpAuth\" : false,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 1.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":1,\\\"offTrusted\\\":1,\\\"vpnTrusted\\\":1,\\\"splitVpnTrusted\\\":1}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 171799.0,\n \"enableCli\" : false,\n \"allowZpaDisableWithoutPassword\" + : false,\n \"allowZiaDisableWithoutPassword\" : true,\n \"allowZdxDisableWithoutPassword\" + : true\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":1}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 1.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"171799\",\n \"enableZiaDR\" : true,\n \"enableZpaDR\" + : true,\n \"ziaDRMethod\" : 2.0,\n \"ziaCustomDbUrl\" : \"https://test.com\",\n + \ \"useZiaGlobalDb\" : true,\n \"ziaGlobalDbUrl\" : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n + \ \"ziaGlobalDbUrlv2\" : \"https://dll7xpq8c5ev0.cloudfront.net/drdb.txt\",\n + \ \"ziaDomainName\" : \"https://test.com\",\n \"ziaRSAPubKeyName\" : + \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\" : \"https://test.com\",\n + \ \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" + : true,\n \"allowZpaTest\" : true\n },\n \"deviceType\" : \"DEVICE_TYPE_LINUX\",\n + \ \"groupIds\" : [ \"62718389\", \"62718414\" ],\n \"userIds\" : [ \"5807211\", + \"35129345\" ]\n}, {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 0.0,\n \"id\" + : 0.0,\n \"name\" : \"Default\",\n \"description\" : \"Default Policy\",\n + \ \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\" : 3.0,\n \"logMode\" + : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" : 100.0,\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"notificationTemplateId\" : 733.0,\n \"tunnelZappTraffic\" : 0.0,\n + \ \"groupAll\" : 1.0,\n \"policyExtension\" : {\n \"sourcePortBasedBypasses\" + : \"3389:*\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4,255.255.255.255,169.254.0.0/16\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"customDNS\" : \"\",\n + \ \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" : \"1\",\n \"zdxDisablePassword\":\"REDACTED\",\n + \ \"zdDisablePassword\":\"REDACTED\",\n \"zpaDisablePassword\":\"REDACTED\",\n + \ \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" : \"1\",\n + \ \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" : \"1\",\n + \ \"useZscalerNotificationFramework\" : \"0\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"0\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"enableCli\" + : false,\n \"allowZpaDisableWithoutPassword\" : false,\n \"allowZiaDisableWithoutPassword\" + : false,\n \"allowZdxDisableWithoutPassword\" : false\n },\n \"zdxLiteConfigObj\" + : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\": {\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\" + : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"0\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"browserAuthType\" : \"-1\",\n + \ \"useDefaultBrowser\" : \"0\",\n \"rscModeOnAllAdapters\" : 0.0,\n + \ \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"enableZiaDR\" : false,\n \"enableZpaDR\" : false,\n \"ziaDRMethod\" + : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" : false,\n + \ \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" + : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n + \ \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" + : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n },\n + \ \"deviceType\" : \"DEVICE_TYPE_LINUX\"\n} ]" headers: cache-control: - no-cache @@ -1108,37 +1382,39 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:31 GMT + - Wed, 11 Feb 2026 02:36:26 GMT pragma: - no-cache server: - Zscaler strict-transport-security: - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '240' + - '252' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 6cbde7ab-79e2-96e0-843d-6088770d1d56 + - 783819a4-aba4-92e3-81ee-09143d40f43b x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '95' + - '85' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '70' + - '17' x-ratelimit-reset: - - '1229' + - '1414' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -1158,107 +1434,202 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/listByCompany?page=1&pageSize=1&deviceType=3 response: body: - string: "[ {\n \"logout_password\" : \"REDACTED\",\n \"uninstall_password\"\ - \ : \"REDACTED\",\n \"disable_password\" : \"REDACTED\",\n \"install_ssl_certs\"\ - \ : 1.0,\n \"disableLoopBackRestriction\" : 0.0,\n \"removeExemptedContainers\"\ - \ : 0.0,\n \"overrideWPAD\" : 0.0,\n \"restartWinHttpSvc\" : 0.0,\n \"\ - cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" : 1.0,\n \"pacType\" : 1.0,\n\ - \ \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" : -1.0,\n \"\ - wfpDriver\" : 1.0,\n \"flowLoggerConfig\" : \"\",\n \"triggerDomainProfleDetection\"\ - \ : 0.0,\n \"installWindowsFirewallInboundRule\" : 1.0,\n \"captivePortalConfig\"\ - \ : \"{\\\"automaticCapture\\\":1,\\\"enableCaptivePortalDetection\\\":1,\\\ - \"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":\\\"10\\\"\ - ,\\\"enableEmbeddedCaptivePortal\\\":0}\",\n \"enableZscalerFirewall\" :\ - \ \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n \"captivePortalUrlId\"\ - \ : 1.0,\n \"id\" : 24939.0,\n \"name\" : \"SGIOLab\",\n \"description\"\ - \ : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n \"ruleOrder\"\ - \ : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" :\ - \ 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\"\ - \ : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\"\ - \ : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\"\ - \ : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"name\" : \"\ - SGIO-Tunnel2.0\",\n \"conditionType\" : 0.0,\n \"enableLWFDriver\" :\ - \ \"1\",\n \"predefinedTrustedNetworks\" : false,\n \"predefinedTnAll\"\ - \ : false\n },\n \"notificationTemplateContract\" : {\n \"id\" : 0.0,\n\ - \ \"templateName\" : \"Legacy Notification Settings\",\n \"defaultTemplate\"\ - \ : \"1\",\n \"enableClientNotification\" : \"0\",\n \"enableZiaNotification\"\ - \ : \"0\",\n \"enableAppUpdatesNotification\" : \"0\",\n \"enableServiceStatusNotification\"\ - \ : \"0\",\n \"enableNotificationForZPAReauth\" : \"1\",\n \"zpaReauthNotificationTime\"\ - \ : 5.0,\n \"customTimer\" : 5.0,\n \"ziaNotificationPersistant\" :\ - \ \"0\",\n \"enablePersistantNotification\" : \"0\",\n \"doNotDisturb\"\ - \ : \"0\",\n \"showDevicePostureFailureNotification\" : \"0\",\n \"\ - createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\"\ - \ : 733.0,\n \"policyToken\" : \"REDACTED_TOKEN\",\n \"tunnelZappTraffic\"\ - \ : 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ ],\n \"policyExtension\"\ - \ : {\n \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\"\ - \ : \"\",\n \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4\"\ - ,\n \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\"\ - \ : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\":\"REDACTED_NONCE\"\ - ,\n \"machineIdpAuth\" : true,\n \"exitPassword\":\"REDACTED\",\n \ - \ \"useV8JsEngine\" : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n\ - \ \"zdDisablePassword\" : \"\",\n \"zpaDisablePassword\":\"REDACTED\"\ - ,\n \"zdpDisablePassword\":\"REDACTED\",\n \"followRoutingTable\" :\ - \ \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\"\ - \ : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\"\ - \ : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\"\ - \ : \"0\",\n \"zccRevertPassword\" : \"\",\n \"zpaAuthExpOnSleep\" :\ - \ 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\"\ - \ : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\"\ - \ : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"\ - packetTunnelExcludeListForIPv6\" : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n\ - \ \"packetTunnelIncludeListForIPv6\" : \"\",\n \"enableSetProxyOnVPNAdapters\"\ - \ : 1.0,\n \"disableDNSRouteExclusion\" : 0.0,\n \"advanceZpaReauth\"\ - \ : false,\n \"useProxyPortForT1\" : \"0\",\n \"useProxyPortForT2\"\ - \ : \"0\",\n \"interceptZIATrafficAllAdapters\" : \"0\",\n \"enableAntiTampering\"\ - \ : \"0\",\n \"overrideATCmdByPolicy\" : \"0\",\n \"reactivateAntiTamperingTime\"\ - \ : 0.0,\n \"enforceSplitDNS\" : 0.0,\n \"dropQuicTraffic\" : 0.0,\n\ - \ \"enableZdpService\" : \"1\",\n \"updateDnsSearchOrder\" : 1.0,\n\ - \ \"truncateLargeUDPDNSResponse\" : 0.0,\n \"prioritizeDnsExclusions\"\ - \ : 0.0,\n \"purgeKerberosPreferredDCCache\" : \"0\",\n \"deleteDHCPOption121Routes\"\ - \ : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\ - \":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n \"enableLocationPolicyOverride\"\ - \ : 0.0,\n \"locationRulesetPolicies\" : {\n \"offTrusted\" : {\n\ - \ \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"trusted\"\ - \ : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n \"\ - vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n },\n\ - \ \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" :\ - \ \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"\ - enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" : true,\n \ - \ \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\"\ - \ : false,\n \"cliPasswordType\" : 0.0\n },\n \"zdxLiteConfigObj\"\ - \ : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\"\ - :0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\"\ - ,\n \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\ - \":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n \"zccFailCloseSettingsIpBypasses\"\ - \ : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\" : \"\",\n \ - \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\"\ - \ : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"\ - zccFailCloseSettingsThumbPrint\" : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\"\ - ,\n \"zccAppFailOpenPolicy\" : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n\ - \ \"followGlobalForPartnerLogin\" : \"1\",\n \"userAllowedToAddPartner\"\ - \ : \"1\",\n \"allowClientCertCachingForWebView2\" : \"0\",\n \"showConfirmationDialogForCachedCert\"\ - \ : \"0\",\n \"enableFlowBasedTunnel\" : 0.0,\n \"enableNetworkTrafficProcessMapping\"\ - \ : 0.0,\n \"enableLocalPacketCapture\" : \"1\",\n \"oneIdMTDeviceAuthEnabled\"\ - \ : \"0\",\n \"enableCustomProxyDetection\" : \"0\",\n \"preventAutoReauthDuringDeviceLock\"\ - \ : \"0\",\n \"useEndPointLocationForDCSelection\" : \"0\",\n \"enableCrashReporting\"\ - \ : 0.0,\n \"recacheSystemProxy\" : \"0\",\n \"followGlobalForZpaReauth\"\ - \ : \"1\",\n \"zpaAutoReauthTimeout\" : 30.0,\n \"enableAutomaticPacketCapture\"\ - \ : 0.0,\n \"enableAPCforCriticalSections\" : 0.0,\n \"enableAPCforOtherSections\"\ - \ : 0.0,\n \"enablePCAdditionalSpace\" : 0.0,\n \"pcAdditionalSpace\"\ - \ : 0.0,\n \"clientConnectorUiLanguage\" : 0.0,\n \"blockPrivateRelay\"\ - \ : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" : 0.0,\n \"reconnectTunOnWakeup\"\ - \ : 0.0\n },\n \"disasterRecovery\" : {\n \"enableZiaDR\" : false,\n\ - \ \"enableZpaDR\" : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\"\ - \ : \"\",\n \"useZiaGlobalDb\" : false,\n \"ziaGlobalDbUrl\" : \"\"\ - ,\n \"ziaGlobalDbUrlv2\" : \"\",\n \"ziaDomainName\" : \"\",\n \"\ - ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" : \"\",\n \"zpaDomainName\"\ - \ : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n \"zpaRSAPubKey\" : \"\",\n\ - \ \"allowZiaTest\" : false,\n \"allowZpaTest\" : false\n }\n} ]" + string: "[ {\n \"logout_password\":\"REDACTED\",\n \"uninstall_password\":\"REDACTED\",\n + \ \"disable_password\":\"REDACTED\",\n \"install_ssl_certs\" : 1.0,\n \"disableLoopBackRestriction\" + : 0.0,\n \"removeExemptedContainers\" : 0.0,\n \"overrideWPAD\" : 0.0,\n + \ \"restartWinHttpSvc\" : 0.0,\n \"cacheSystemProxy\" : 0.0,\n \"prioritizeIPv4\" + : 1.0,\n \"pacType\" : 1.0,\n \"pacDataPath\" : \"\",\n \"disableParallelIpv4AndIPv6\" + : -1.0,\n \"wfpDriver\" : 1.0,\n \"flowLoggerConfig\" : \"\",\n \"triggerDomainProfleDetection\" + : 0.0,\n \"installWindowsFirewallInboundRule\" : 1.0,\n \"captivePortalConfig\" + : \"{\\\"automaticCapture\\\":1,\\\"enableCaptivePortalDetection\\\":1,\\\"enableFailOpen\\\":1,\\\"captivePortalWebSecDisableMinutes\\\":\\\"10\\\",\\\"enableEmbeddedCaptivePortal\\\":0}\",\n + \ \"enableZscalerFirewall\" : \"0\",\n \"forceLocationRefreshSccm\" : 0.0,\n + \ \"captivePortalUrlId\" : 1.0,\n \"id\" : 24939.0,\n \"name\" : \"SGIOLab\",\n + \ \"description\" : \"test\",\n \"pac_url\" : \"\",\n \"active\" : 1.0,\n + \ \"ruleOrder\" : 1.0,\n \"logMode\" : 3.0,\n \"logLevel\" : 0.0,\n \"logFileSize\" + : 100.0,\n \"reauth_period\" : \"12\",\n \"reactivateWebSecurityMinutes\" + : \"0\",\n \"highlightActiveControl\" : 0.0,\n \"sendDisableServiceReason\" + : 0.0,\n \"enableDeviceGroups\" : 0.0,\n \"groups\" : [ ],\n \"deviceGroups\" + : [ ],\n \"onNetPolicy\" : {\n \"id\" : \"11925\",\n \"active\" : \"1\",\n + \ \"name\" : \"SGIO-Tunnel2.0\",\n \"conditionType\" : 1.0,\n \"dnsServers\" + : \"\",\n \"dnsSearchDomains\" : \"\",\n \"enableLWFDriver\" : \"1\",\n + \ \"hostname\" : \"\",\n \"resolvedIpsForHostname\" : \"\",\n \"trustedSubnets\" + : \"\",\n \"trustedGateways\" : \"\",\n \"trustedDhcpServers\" : \"\",\n + \ \"trustedEgressIps\" : \"\",\n \"predefinedTrustedNetworks\" : false,\n + \ \"predefinedTnAll\" : false,\n \"forwardingProfileActions\" : [ {\n + \ \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n \"systemProxy\" + : 0.0,\n \"customPac\" : \"\",\n \"enablePacketTunnel\" : 1.0,\n + \ \"systemProxyData\" : {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" + : 0.0,\n \"enablePAC\" : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" + : 0.0,\n \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" + : \"0\",\n \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" + : 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 2.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 0.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 1.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n }, {\n \"networkType\" + : 3.0,\n \"actionType\" : 1.0,\n \"systemProxy\" : 0.0,\n \"customPac\" + : \"\",\n \"enablePacketTunnel\" : 1.0,\n \"systemProxyData\" : + {\n \"proxyAction\" : 1.0,\n \"enableAutoDetect\" : 0.0,\n \"enablePAC\" + : 0.0,\n \"pacURL\" : \"\",\n \"enableProxyServer\" : 0.0,\n + \ \"proxyServerAddress\" : \"\",\n \"proxyServerPort\" : \"0\",\n + \ \"bypassProxyForPrivateIP\" : 0.0,\n \"performGPUpdate\" : + 0.0,\n \"pacDataPath\" : \"\"\n },\n \"primaryTransport\" + : 1.0,\n \"DTLSTimeout\" : 9.0,\n \"UDPTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"blockUnreachableDomainsTraffic\" + : 0.0,\n \"allowTLSFallback\" : 1.0,\n \"tunnel2FallbackType\" : + 0.0,\n \"sendAllDNSToTrustedServer\" : 0.0,\n \"dropIpv6Traffic\" + : 0.0,\n \"redirectWebTraffic\" : 0.0,\n \"dropIpv6IncludeTrafficInT2\" + : 0.0,\n \"useTunnel2ForProxiedWebTraffic\" : 0.0,\n \"useTunnel2ForUnencryptedWebTraffic\" + : 0.0,\n \"pathMtuDiscovery\" : 1.0,\n \"latencyBasedZenEnablement\" + : 0.0,\n \"zenProbeInterval\" : 60.0,\n \"zenProbeSampleSize\" : + 5.0,\n \"zenThresholdLimit\" : 2.0,\n \"dropIpv6TrafficInIpv6Network\" + : 0.0,\n \"optimiseForUnstableConnections\" : 0.0\n } ],\n \"forwardingProfileZpaActions\" + : [ {\n \"networkType\" : 0.0,\n \"actionType\" : 1.0,\n \"primaryTransport\" + : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" : 5.0,\n \"mtuForZadapter\" + : 0.0,\n \"sendTrustedNetworkResultToZpa\" : 0.0,\n \"partnerInfo\" + : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" : 1.0,\n + \ \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 1.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 2.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n }, {\n \"networkType\" : 3.0,\n \"actionType\" : 1.0,\n + \ \"primaryTransport\" : 0.0,\n \"DTLSTimeout\" : 9.0,\n \"TLSTimeout\" + : 5.0,\n \"mtuForZadapter\" : 0.0,\n \"sendTrustedNetworkResultToZpa\" + : 0.0,\n \"partnerInfo\" : {\n \"primaryTransport\" : 2.0,\n \"allowTlsFallback\" + : 1.0,\n \"mtuForZadapter\" : 0.0\n },\n \"latencyBasedServerEnablement\" + : 0.0,\n \"lbsProbeInterval\" : 30.0,\n \"lbsProbeSampleSize\" : + 5.0,\n \"lbsThresholdLimit\" : 1.0,\n \"latencyBasedServerMTEnablement\" + : 0.0\n } ],\n \"enableAllDefaultAdaptersTN\" : 1.0,\n \"enableSplitVpnTN\" + : 0.0,\n \"skipTrustedCriteriaMatch\" : 0.0\n },\n \"notificationTemplateContract\" + : {\n \"id\" : 0.0,\n \"templateName\" : \"Legacy Notification Settings\",\n + \ \"defaultTemplate\" : \"1\",\n \"enableClientNotification\" : \"0\",\n + \ \"enableZiaNotification\" : \"0\",\n \"enableAppUpdatesNotification\" + : \"0\",\n \"enableServiceStatusNotification\" : \"0\",\n \"enableNotificationForZPAReauth\" + : \"1\",\n \"zpaReauthNotificationTime\" : 5.0,\n \"customTimer\" : + 5.0,\n \"ziaNotificationPersistant\" : \"0\",\n \"enablePersistantNotification\" + : \"0\",\n \"ziaFirewall\" : \"0\",\n \"ziaFirewallPopup\" : \"0\",\n + \ \"ziaDNS\" : \"0\",\n \"ziaDNSPopup\" : \"0\",\n \"ziaIPS\" : \"0\",\n + \ \"ziaIPSPopup\" : \"0\",\n \"doNotDisturb\" : \"0\",\n \"showDevicePostureFailureNotification\" + : \"0\",\n \"createdBy\" : \"0\",\n \"editedBy\" : \"0\"\n },\n \"notificationTemplateId\" + : 733.0,\n \"policyToken\":\"REDACTED_TOKEN\",\n \"tunnelZappTraffic\" : + 0.0,\n \"groupAll\" : 1.0,\n \"users\" : [ ],\n \"policyExtension\" : {\n + \ \"sourcePortBasedBypasses\" : \"3389:*\",\n \"vpnGateways\" : \"\",\n + \ \"packetTunnelExcludeList\" : \"10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4\",\n + \ \"packetTunnelIncludeList\" : \"0.0.0.0/0\",\n \"packetTunnelDnsIncludeList\" + : \"\",\n \"packetTunnelDnsExcludeList\" : \"\",\n \"nonce\":\"REDACTED_NONCE\",\n + \ \"machineIdpAuth\" : true,\n \"exitPassword\":\"REDACTED\",\n \"useV8JsEngine\" + : \"0\",\n \"zdxDisablePassword\":\"REDACTED\",\n \"zdDisablePassword\":\"REDACTED\",\n + \ \"zpaDisablePassword\":\"REDACTED\",\n \"zdpDisablePassword\":\"REDACTED\",\n + \ \"followRoutingTable\" : \"1\",\n \"useWsaPollForZpa\" : \"0\",\n \"useDefaultAdapterForDNS\" + : \"1\",\n \"useZscalerNotificationFramework\" : \"1\",\n \"switchFocusToNotification\" + : \"0\",\n \"fallbackToGatewayDomain\" : \"1\",\n \"enableZCCRevert\" + : \"0\",\n \"zccRevertPassword\":\"REDACTED\",\n \"zpaAuthExpOnSleep\" + : 0.0,\n \"zpaAuthExpOnSysRestart\" : 0.0,\n \"zpaAuthExpOnNetIpChange\" + : 0.0,\n \"zpaAuthExpOnWinLogonSession\" : 0.0,\n \"zpaAuthExpOnWinSessionLock\" + : 0.0,\n \"zpaAuthExpSessionLockStateMinTimeInSecond\" : 0.0,\n \"packetTunnelExcludeListForIPv6\" + : \"[FF00::/8],[FE80::/10],[FC00::/7]\",\n \"packetTunnelIncludeListForIPv6\" + : \"\",\n \"enableSetProxyOnVPNAdapters\" : 1.0,\n \"disableDNSRouteExclusion\" + : 0.0,\n \"advanceZpaReauth\" : false,\n \"useProxyPortForT1\" : \"0\",\n + \ \"useProxyPortForT2\" : \"0\",\n \"interceptZIATrafficAllAdapters\" + : \"0\",\n \"enableAntiTampering\" : \"0\",\n \"overrideATCmdByPolicy\" + : \"0\",\n \"reactivateAntiTamperingTime\" : 0.0,\n \"enforceSplitDNS\" + : 0.0,\n \"dropQuicTraffic\" : 0.0,\n \"enableZdpService\" : \"1\",\n + \ \"updateDnsSearchOrder\" : 1.0,\n \"truncateLargeUDPDNSResponse\" : + 0.0,\n \"prioritizeDnsExclusions\" : 0.0,\n \"purgeKerberosPreferredDCCache\" + : \"0\",\n \"deleteDHCPOption121Routes\" : \"{\\\"trusted\\\":\\\"1\\\",\\\"offTrusted\\\":\\\"1\\\",\\\"vpnTrusted\\\":\\\"1\\\",\\\"splitVpnTrusted\\\":\\\"1\\\"}\",\n + \ \"enableLocationPolicyOverride\" : 0.0,\n \"locationRulesetPolicies\" + : {\n \"offTrusted\" : {\n \"id\" : 0.0,\n \"name\" : \"\"\n + \ },\n \"trusted\" : {\n \"id\" : 0.0,\n \"name\" : + \"\"\n },\n \"vpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n },\n \"splitVpnTrusted\" : {\n \"id\" : 0.0,\n \"name\" + : \"\"\n }\n },\n \"generateCliPasswordContract\" : {\n \"policyId\" + : 24939.0,\n \"enableCli\" : true,\n \"allowZpaDisableWithoutPassword\" + : true,\n \"allowZiaDisableWithoutPassword\" : false,\n \"allowZdxDisableWithoutPassword\" + : false\n },\n \"zdxLiteConfigObj\" : \"{\\\"localMetrics\\\":1,\\\"endToEndDiagnostics\\\":{\\\"trusted\\\":0,\\\"vpnTrusted\\\":0,\\\"offTrusted\\\":0,\\\"splitVpnTrusted\\\":0}}\",\n + \ \"ddilConfig\" : \"{\\\"ddilEnabled\\\":0,\\\"businessContinuityActivationDomain\\\":\\\"\\\",\\\"businessContinuityTestModeEnabled\\\":0}\",\n + \ \"zccFailCloseSettingsIpBypasses\" : \"\",\n \"zccFailCloseSettingsExitUninstallPassword\":\"REDACTED\",\n + \ \"zccFailCloseSettingsLockdownOnTunnelProcessExit\" : 0.0,\n \"zccFailCloseSettingsLockdownOnFirewallError\" + : 0.0,\n \"zccFailCloseSettingsLockdownOnDriverError\" : 0.0,\n \"zccFailCloseSettingsThumbPrint\" + : \"8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=\",\n \"zccAppFailOpenPolicy\" + : 0.0,\n \"zccTunnelFailPolicy\" : 0.0,\n \"followGlobalForPartnerLogin\" + : \"1\",\n \"userAllowedToAddPartner\" : \"1\",\n \"allowClientCertCachingForWebView2\" + : \"0\",\n \"showConfirmationDialogForCachedCert\" : \"0\",\n \"enableFlowBasedTunnel\" + : 0.0,\n \"enableNetworkTrafficProcessMapping\" : 0.0,\n \"enableLocalPacketCapture\" + : \"1\",\n \"oneIdMTDeviceAuthEnabled\" : \"0\",\n \"enableCustomProxyDetection\" + : \"0\",\n \"preventAutoReauthDuringDeviceLock\" : \"0\",\n \"useEndPointLocationForDCSelection\" + : \"0\",\n \"enableCrashReporting\" : 0.0,\n \"recacheSystemProxy\" + : \"0\",\n \"followGlobalForZpaReauth\" : \"1\",\n \"zpaAutoReauthTimeout\" + : 30.0,\n \"enableAutomaticPacketCapture\" : 0.0,\n \"enableAPCforCriticalSections\" + : 0.0,\n \"enableAPCforOtherSections\" : 0.0,\n \"enablePCAdditionalSpace\" + : 0.0,\n \"pcAdditionalSpace\" : 0.0,\n \"clientConnectorUiLanguage\" + : 0.0,\n \"blockPrivateRelay\" : \"0\",\n \"bypassDNSTrafficUsingUDPProxy\" + : 0.0,\n \"reconnectTunOnWakeup\" : 0.0,\n \"rscModeOnAllAdapters\" + : 0.0,\n \"enableAdapterHardwareOffloading\" : \"0\"\n },\n \"disasterRecovery\" + : {\n \"policyId\" : \"24939\",\n \"enableZiaDR\" : false,\n \"enableZpaDR\" + : false,\n \"ziaDRMethod\" : 0.0,\n \"ziaCustomDbUrl\" : \"\",\n \"useZiaGlobalDb\" + : false,\n \"ziaGlobalDbUrl\" : \"\",\n \"ziaGlobalDbUrlv2\" : \"\",\n + \ \"ziaDomainName\" : \"\",\n \"ziaRSAPubKeyName\" : \"\",\n \"ziaRSAPubKey\" + : \"\",\n \"zpaDomainName\" : \"\",\n \"zpaRSAPubKeyName\" : \"\",\n + \ \"zpaRSAPubKey\" : \"\",\n \"allowZiaTest\" : false,\n \"allowZpaTest\" + : false\n },\n \"deviceType\" : \"DEVICE_TYPE_WINDOWS\"\n} ]" headers: cache-control: - no-cache @@ -1267,7 +1638,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:32 GMT + - Wed, 11 Feb 2026 02:36:26 GMT pragma: - no-cache server: @@ -1279,25 +1650,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '213' + - '225' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - fb7e3e82-fb78-9de8-b254-f21cabdc47c3 + - 37864bc8-51df-9a93-bd15-3135389b515f x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '94' + - '86' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '69' + - '16' x-ratelimit-reset: - - '1229' + - '1414' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -1316,7 +1687,7 @@ interactions: {"sourcePortBasedBypasses": "3389:*", "vpnGateways": "", "packetTunnelExcludeList": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", "packetTunnelIncludeList": "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": - "", "nonce": "REDACTED", "machineIdpAuth": true, "exitPassword":"REDACTED", + "", "nonce": "REDACTED_NONCE", "machineIdpAuth": true, "exitPassword":"REDACTED", "useV8JsEngine": "0", "zdxDisablePassword":"REDACTED", "zdDisablePassword":"REDACTED", "zpaDisablePassword":"REDACTED", "zdpDisablePassword":"REDACTED", "followRoutingTable": "1", "useWsaPollForZpa": "0", "useDefaultAdapterForDNS": "1", "useZscalerNotificationFramework": @@ -1331,14 +1702,14 @@ interactions: 0.0, "dropQuicTraffic": 0.0, "enableZdpService": "1", "updateDnsSearchOrder": 1.0, "truncate_large_udpdns_response": 0.0, "prioritizeDnsExclusions": 0.0, "purge_kerberos_preferred_dc_cache": "0", "deleteDHCPOption121Routes": "{\"trusted\":\"1\",\"offTrusted\":\"1\",\"vpnTrusted\":\"1\",\"splitVpnTrusted\":\"1\"}", - "generateCliPasswordContract": {"enableCli": true, "allowZpaDisableWithoutPassword": + "generateCliPasswordContract": {"policyId": 24939.0, "enableCli": true, "allowZpaDisableWithoutPassword": true, "allowZiaDisableWithoutPassword": false, "allowZdxDisableWithoutPassword": - false, "cliPasswordType": 0.0}, "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", + false}, "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", "ddilConfig": "{\"ddilEnabled\":0,\"businessContinuityActivationDomain\":\"\",\"businessContinuityTestModeEnabled\":0}", "zccFailCloseSettingsExitUninstallPassword": {"sourcePortBasedBypasses": "3389:*", "vpnGateways": "", "packetTunnelExcludeList": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", "packetTunnelIncludeList": "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": - "", "nonce": "REDACTED", "machineIdpAuth": true, "exitPassword":"REDACTED", + "", "nonce": "REDACTED_NONCE", "machineIdpAuth": true, "exitPassword":"REDACTED", "useV8JsEngine": "0", "zdxDisablePassword":"REDACTED", "zdDisablePassword":"REDACTED", "zpaDisablePassword":"REDACTED", "zdpDisablePassword":"REDACTED", "followRoutingTable": "1", "useWsaPollForZpa": "0", "useDefaultAdapterForDNS": "1", "useZscalerNotificationFramework": @@ -1356,9 +1727,9 @@ interactions: "enableLocationPolicyOverride": 0.0, "locationRulesetPolicies": {"offTrusted": {"id": 0.0, "name": ""}, "trusted": {"id": 0.0, "name": ""}, "vpnTrusted": {"id": 0.0, "name": ""}, "splitVpnTrusted": {"id": 0.0, "name": ""}}, "generateCliPasswordContract": - {"enableCli": true, "allowZpaDisableWithoutPassword": true, "allowZiaDisableWithoutPassword": - false, "allowZdxDisableWithoutPassword": false, "cliPasswordType": 0.0}, "zdxLiteConfigObj": - "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", + {"policyId": 24939.0, "enableCli": true, "allowZpaDisableWithoutPassword": true, + "allowZiaDisableWithoutPassword": false, "allowZdxDisableWithoutPassword": false}, + "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", "ddilConfig": "{\"ddilEnabled\":0,\"businessContinuityActivationDomain\":\"\",\"businessContinuityTestModeEnabled\":0}", "zccFailCloseSettingsIpBypasses": "", "zccFailCloseSettingsExitUninstallPassword":"REDACTED", "zccFailCloseSettingsLockdownOnTunnelProcessExit": 0.0, "zccFailCloseSettingsLockdownOnFirewallError": @@ -1373,11 +1744,11 @@ interactions: "1", "zpaAutoReauthTimeout": 30.0, "enableAutomaticPacketCapture": 0.0, "enableAPCforCriticalSections": 0.0, "enableAPCforOtherSections": 0.0, "enablePCAdditionalSpace": 0.0, "pcAdditionalSpace": 0.0, "clientConnectorUiLanguage": 0.0, "blockPrivateRelay": "0", "bypassDNSTrafficUsingUDPProxy": - 0.0, "reconnectTunOnWakeup": 0.0}, "zccFailCloseSettingsLockdownOnTunnelProcessExit": - {"sourcePortBasedBypasses": "3389:*", "vpnGateways": "", "packetTunnelExcludeList": - "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", "packetTunnelIncludeList": - "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": - "", "nonce": "REDACTED", "machineIdpAuth": true, "exitPassword":"REDACTED", + 0.0, "reconnectTunOnWakeup": 0.0, "rscModeOnAllAdapters": 0.0, "enableAdapterHardwareOffloading": + "0"}, "zccFailCloseSettingsLockdownOnTunnelProcessExit": {"sourcePortBasedBypasses": + "3389:*", "vpnGateways": "", "packetTunnelExcludeList": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", + "packetTunnelIncludeList": "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": + "", "nonce": "REDACTED_NONCE", "machineIdpAuth": true, "exitPassword":"REDACTED", "useV8JsEngine": "0", "zdxDisablePassword":"REDACTED", "zdDisablePassword":"REDACTED", "zpaDisablePassword":"REDACTED", "zdpDisablePassword":"REDACTED", "followRoutingTable": "1", "useWsaPollForZpa": "0", "useDefaultAdapterForDNS": "1", "useZscalerNotificationFramework": @@ -1395,9 +1766,9 @@ interactions: "enableLocationPolicyOverride": 0.0, "locationRulesetPolicies": {"offTrusted": {"id": 0.0, "name": ""}, "trusted": {"id": 0.0, "name": ""}, "vpnTrusted": {"id": 0.0, "name": ""}, "splitVpnTrusted": {"id": 0.0, "name": ""}}, "generateCliPasswordContract": - {"enableCli": true, "allowZpaDisableWithoutPassword": true, "allowZiaDisableWithoutPassword": - false, "allowZdxDisableWithoutPassword": false, "cliPasswordType": 0.0}, "zdxLiteConfigObj": - "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", + {"policyId": 24939.0, "enableCli": true, "allowZpaDisableWithoutPassword": true, + "allowZiaDisableWithoutPassword": false, "allowZdxDisableWithoutPassword": false}, + "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", "ddilConfig": "{\"ddilEnabled\":0,\"businessContinuityActivationDomain\":\"\",\"businessContinuityTestModeEnabled\":0}", "zccFailCloseSettingsIpBypasses": "", "zccFailCloseSettingsExitUninstallPassword":"REDACTED", "zccFailCloseSettingsLockdownOnTunnelProcessExit": 0.0, "zccFailCloseSettingsLockdownOnFirewallError": @@ -1412,11 +1783,11 @@ interactions: "1", "zpaAutoReauthTimeout": 30.0, "enableAutomaticPacketCapture": 0.0, "enableAPCforCriticalSections": 0.0, "enableAPCforOtherSections": 0.0, "enablePCAdditionalSpace": 0.0, "pcAdditionalSpace": 0.0, "clientConnectorUiLanguage": 0.0, "blockPrivateRelay": "0", "bypassDNSTrafficUsingUDPProxy": - 0.0, "reconnectTunOnWakeup": 0.0}, "zccFailCloseSettingsLockdownOnFirewallError": - {"sourcePortBasedBypasses": "3389:*", "vpnGateways": "", "packetTunnelExcludeList": - "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", "packetTunnelIncludeList": - "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": - "", "nonce": "REDACTED", "machineIdpAuth": true, "exitPassword":"REDACTED", + 0.0, "reconnectTunOnWakeup": 0.0, "rscModeOnAllAdapters": 0.0, "enableAdapterHardwareOffloading": + "0"}, "zccFailCloseSettingsLockdownOnFirewallError": {"sourcePortBasedBypasses": + "3389:*", "vpnGateways": "", "packetTunnelExcludeList": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", + "packetTunnelIncludeList": "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": + "", "nonce": "REDACTED_NONCE", "machineIdpAuth": true, "exitPassword":"REDACTED", "useV8JsEngine": "0", "zdxDisablePassword":"REDACTED", "zdDisablePassword":"REDACTED", "zpaDisablePassword":"REDACTED", "zdpDisablePassword":"REDACTED", "followRoutingTable": "1", "useWsaPollForZpa": "0", "useDefaultAdapterForDNS": "1", "useZscalerNotificationFramework": @@ -1434,9 +1805,9 @@ interactions: "enableLocationPolicyOverride": 0.0, "locationRulesetPolicies": {"offTrusted": {"id": 0.0, "name": ""}, "trusted": {"id": 0.0, "name": ""}, "vpnTrusted": {"id": 0.0, "name": ""}, "splitVpnTrusted": {"id": 0.0, "name": ""}}, "generateCliPasswordContract": - {"enableCli": true, "allowZpaDisableWithoutPassword": true, "allowZiaDisableWithoutPassword": - false, "allowZdxDisableWithoutPassword": false, "cliPasswordType": 0.0}, "zdxLiteConfigObj": - "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", + {"policyId": 24939.0, "enableCli": true, "allowZpaDisableWithoutPassword": true, + "allowZiaDisableWithoutPassword": false, "allowZdxDisableWithoutPassword": false}, + "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", "ddilConfig": "{\"ddilEnabled\":0,\"businessContinuityActivationDomain\":\"\",\"businessContinuityTestModeEnabled\":0}", "zccFailCloseSettingsIpBypasses": "", "zccFailCloseSettingsExitUninstallPassword":"REDACTED", "zccFailCloseSettingsLockdownOnTunnelProcessExit": 0.0, "zccFailCloseSettingsLockdownOnFirewallError": @@ -1451,11 +1822,11 @@ interactions: "1", "zpaAutoReauthTimeout": 30.0, "enableAutomaticPacketCapture": 0.0, "enableAPCforCriticalSections": 0.0, "enableAPCforOtherSections": 0.0, "enablePCAdditionalSpace": 0.0, "pcAdditionalSpace": 0.0, "clientConnectorUiLanguage": 0.0, "blockPrivateRelay": "0", "bypassDNSTrafficUsingUDPProxy": - 0.0, "reconnectTunOnWakeup": 0.0}, "zccFailCloseSettingsLockdownOnDriverError": - {"sourcePortBasedBypasses": "3389:*", "vpnGateways": "", "packetTunnelExcludeList": - "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", "packetTunnelIncludeList": - "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": - "", "nonce": "REDACTED", "machineIdpAuth": true, "exitPassword":"REDACTED", + 0.0, "reconnectTunOnWakeup": 0.0, "rscModeOnAllAdapters": 0.0, "enableAdapterHardwareOffloading": + "0"}, "zccFailCloseSettingsLockdownOnDriverError": {"sourcePortBasedBypasses": + "3389:*", "vpnGateways": "", "packetTunnelExcludeList": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224.0.0.0/4", + "packetTunnelIncludeList": "0.0.0.0/0", "packetTunnelDnsIncludeList": "", "packetTunnelDnsExcludeList": + "", "nonce": "REDACTED_NONCE", "machineIdpAuth": true, "exitPassword":"REDACTED", "useV8JsEngine": "0", "zdxDisablePassword":"REDACTED", "zdDisablePassword":"REDACTED", "zpaDisablePassword":"REDACTED", "zdpDisablePassword":"REDACTED", "followRoutingTable": "1", "useWsaPollForZpa": "0", "useDefaultAdapterForDNS": "1", "useZscalerNotificationFramework": @@ -1473,9 +1844,9 @@ interactions: "enableLocationPolicyOverride": 0.0, "locationRulesetPolicies": {"offTrusted": {"id": 0.0, "name": ""}, "trusted": {"id": 0.0, "name": ""}, "vpnTrusted": {"id": 0.0, "name": ""}, "splitVpnTrusted": {"id": 0.0, "name": ""}}, "generateCliPasswordContract": - {"enableCli": true, "allowZpaDisableWithoutPassword": true, "allowZiaDisableWithoutPassword": - false, "allowZdxDisableWithoutPassword": false, "cliPasswordType": 0.0}, "zdxLiteConfigObj": - "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", + {"policyId": 24939.0, "enableCli": true, "allowZpaDisableWithoutPassword": true, + "allowZiaDisableWithoutPassword": false, "allowZdxDisableWithoutPassword": false}, + "zdxLiteConfigObj": "{\"localMetrics\":1,\"endToEndDiagnostics\":{\"trusted\":0,\"vpnTrusted\":0,\"offTrusted\":0,\"splitVpnTrusted\":0}}", "ddilConfig": "{\"ddilEnabled\":0,\"businessContinuityActivationDomain\":\"\",\"businessContinuityTestModeEnabled\":0}", "zccFailCloseSettingsIpBypasses": "", "zccFailCloseSettingsExitUninstallPassword":"REDACTED", "zccFailCloseSettingsLockdownOnTunnelProcessExit": 0.0, "zccFailCloseSettingsLockdownOnFirewallError": @@ -1490,7 +1861,8 @@ interactions: "1", "zpaAutoReauthTimeout": 30.0, "enableAutomaticPacketCapture": 0.0, "enableAPCforCriticalSections": 0.0, "enableAPCforOtherSections": 0.0, "enablePCAdditionalSpace": 0.0, "pcAdditionalSpace": 0.0, "clientConnectorUiLanguage": 0.0, "blockPrivateRelay": "0", "bypassDNSTrafficUsingUDPProxy": - 0.0, "reconnectTunOnWakeup": 0.0}, "zccFailCloseSettingsThumbPrint": "8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=", + 0.0, "reconnectTunOnWakeup": 0.0, "rscModeOnAllAdapters": 0.0, "enableAdapterHardwareOffloading": + "0"}, "zccFailCloseSettingsThumbPrint": "8feY7wdD8n4gHFMlChIzTaptWT3YZhAtwchxGbOAwks=", "zccAppFailOpenPolicy": 0.0, "zccTunnelFailPolicy": 0.0, "followGlobalForPartnerLogin": "1", "userAllowedToAddPartner": "1", "allowClientCertCachingForWebView2": "0", "showConfirmationDialogForCachedCert": "0", "enableFlowBasedTunnel": 0.0}, "reactivateWebSecurityMinutes": @@ -1505,17 +1877,17 @@ interactions: Connection: - keep-alive Content-Length: - - '19822' + - '18140' Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/edit response: body: - string: "{\n \"timestamp\" : 1766003972643,\n \"status\" : 400,\n \"error\"\ - \ : \"Bad Request\",\n \"path\" : \"/papi/public/v1/web/policy/edit\"\n}" + string: "{\n \"timestamp\" : 1770777387174,\n \"status\" : 400,\n \"error\" + : \"Bad Request\",\n \"path\" : \"/papi/public/v1/web/policy/edit\"\n}" headers: cache-control: - no-cache @@ -1524,7 +1896,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:32 GMT + - Wed, 11 Feb 2026 02:36:27 GMT pragma: - no-cache server: @@ -1536,21 +1908,21 @@ interactions: vary: - Accept-Encoding x-envoy-upstream-service-time: - - '381' + - '252' x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - f58baeee-51ee-9e1d-b383-049cfad8434b + - eee1bd27-7dae-9769-b62a-240240937190 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '68' + - '15' x-ratelimit-reset: - - '1228' + - '1414' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 status: code: 400 message: Bad Request @@ -1568,7 +1940,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: DELETE uri: https://easm.test.zscaler.com/zcc/papi/public/v1/web/policy/999999999/delete response: @@ -1582,7 +1954,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 20:39:32 GMT + - Wed, 11 Feb 2026 02:36:27 GMT pragma: - no-cache server: @@ -1596,92 +1968,28 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '186' + - '174' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 459f216f-2ab9-978c-8483-5330f79f1f6c + - 0953c8c2-a6be-95bb-a697-8254b6527001 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '85' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '67' + - '14' x-ratelimit-reset: - - '1228' + - '1413' x-transaction-id: - - c017c331-e676-4a1b-acf5-f895621efec9 + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: code: 200 message: OK -- request: - body: grant_type=client_credentials&client_id=ipm2ol7odg7hp&client_secret=REDACTED&audience=https%3A%2F%2Fapi.zscaler.com - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '147' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - zscaler-sdk-python/1.9.12 python/3.11.8 Darwin/24.6.0 - method: POST - uri: https://identity.test.zscaler.com/oauth2/v1/token - response: - body: - string: '{"access_token":"REDACTED_TOKEN","token_type":"Bearer","expires_in":83999}' - headers: - cache-control: - - no-cache, no-store, max-age=0, must-revalidate - content-security-policy: - - 'default-src ''none'' ;connect-src https://securitygeekio.zslogin.net/;font-src - https://fonts.gstatic.com ;img-src data: https://www.zscaler.com https://info.zscaler.com - ;script-src ''unsafe-inline'' ''unsafe-eval'' https://www.zscaler.com ;style-src - ''unsafe-inline'' https://fonts.googleapis.com ;frame-src https://securitygeekio.zslogin.net/ - https://securitygeekio-admin.zslogin.net/;frame-ancestors ;upgrade-insecure-requests' - content-type: - - application/json;charset=UTF-8 - date: - - Tue, 20 Jan 2026 01:29:05 GMT - expires: - - '0' - pragma: - - no-cache - server: - - ingress-gateway - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - - max-age=31536000; includeSubDomains; - - max-age=31536000; includeSubDomains; - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - - nosniff - - nosniff - x-frame-options: - - DENY - - SAMEORIGIN - - SAMEORIGIN - x-ratelimit-limit: - - 500, 500;w=1, 100000;w=60 - x-ratelimit-remaining: - - '499' - x-ratelimit-reset: - - '1' - x-xss-protection: - - '0' - status: - code: 200 - message: OK version: 1 diff --git a/tests/integration/zcc/cassettes/TestWebPrivacy.yaml b/tests/integration/zcc/cassettes/TestWebPrivacy.yaml index bf71704e..4b38a5df 100644 --- a/tests/integration/zcc/cassettes/TestWebPrivacy.yaml +++ b/tests/integration/zcc/cassettes/TestWebPrivacy.yaml @@ -13,7 +13,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET uri: https://easm.test.zscaler.com/zcc/papi/public/v1/getWebPrivacyInfo response: @@ -32,7 +32,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:36 GMT + - Wed, 11 Feb 2026 02:36:27 GMT pragma: - no-cache server: @@ -44,25 +44,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '165' + - '162' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 18803914-0940-9ca8-83ad-34b93b9a739e + - 9c876de5-a8f2-91ea-942f-c28bf0c2b36a x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '93' + - '83' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '51' + - '12' x-ratelimit-reset: - - '2124' + - '1413' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: @@ -82,7 +82,7 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.11 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT uri: https://easm.test.zscaler.com/zcc/papi/public/v1/setWebPrivacyInfo response: @@ -96,7 +96,7 @@ interactions: content-type: - application/json;charset=UTF-8 date: - - Wed, 17 Dec 2025 18:24:37 GMT + - Wed, 11 Feb 2026 02:36:28 GMT pragma: - no-cache server: @@ -110,25 +110,25 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '177' + - '165' x-frame-options: - SAMEORIGIN x-oneapi-host: - https://apiusw2.zsapi.net x-oneapi-request-id: - - 0b18609a-30d5-9b43-82ec-23f6be35c4a7 + - 53fe5731-5226-9a00-94d2-0bad5b72ee16 x-oneapi-version: - - 109.1.92 + - 109.1.111 x-rate-limit-remaining: - - '87' + - '85' x-ratelimit-limit: - 100, 100;w=3600, 100;w=3600 x-ratelimit-remaining: - - '50' + - '11' x-ratelimit-reset: - - '2123' + - '1412' x-transaction-id: - - 40721a9f-fa0d-4e0a-9b6e-7aa00800b47b + - b4f2ba96-af19-4c5f-ada8-da85f767d2d4 x-xss-protection: - 1; mode=block status: diff --git a/tests/integration/zia/cassettes/TestRuleLabels.yaml b/tests/integration/zia/cassettes/TestRuleLabels.yaml index dd88c562..d8a9ea07 100644 --- a/tests/integration/zia/cassettes/TestRuleLabels.yaml +++ b/tests/integration/zia/cassettes/TestRuleLabels.yaml @@ -1,78 +1,6 @@ interactions: - request: - body: '{"name": "TestLabel_VCR_Integration", "description": "Test Description - for VCR"}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '80' - Content-Type: - - application/json - User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 - method: POST - uri: https://api.zsapi.net/zia/api/v1/ruleLabels - response: - body: - string: 'getAttribute: Session already invalidated' - headers: - content-encoding: - - gzip - content-security-policy: - - 'default-src ''none''; img-src ''self'' data: https://www.zscaler.com https://www.zscaler.fr - https://a.tile.openstreetmap.org https://b.tile.openstreetmap.org - https://c.tile.openstreetmap.org https://webapi.zscaler.com - https://cdn.zscaler.com https://server.arcgisonline.com https://fast.wistia.com - https://cms.zscaler.com; script-src ''self'' ''unsafe-eval'' https://*.userpilot.io - https://webapi.zscaler.com/ https://www.zscaler.com/api/admin-ui-messages/ - https://webapi.zscaler.com/ https://fast.wistia.com; style-src - ''unsafe-inline'' https:; font-src ''self''; connect-src ''self'' https://*.userpilot.io - wss://analytex-us.userpilot.io; frame-src ''self'' https://help.zscaler.com/ - https://help.zscalergov.net https://help.zscaler.us; manifest-src ''self''' - content-type: - - text/plain;charset=UTF-8 - date: - - Wed, 26 Nov 2025 23:51:42 GMT - server: - - Zscaler - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - vary: - - accept-encoding, Accept-Encoding - x-content-type-options: - - nosniff - x-envoy-upstream-service-time: - - '182' - x-frame-options: - - SAMEORIGIN - x-oneapi-host: - - https://apiusw2.zsapi.net - x-oneapi-request-id: - - 352de0d7-8696-9bbb-9d26-89df42956ceb - x-oneapi-version: - - 109.1.85 - x-ratelimit-limit: - - 5000, 5000;w=60 - x-ratelimit-remaining: - - '4980' - x-ratelimit-reset: - - '18' - x-transaction-id: - - d12cf6fb-c5cd-4dc2-a132-8157d492d761 - x-xss-protection: - - 1; mode=block - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=client_credentials&client_id=ipm2ol7odg7hp&client_secret=REDACTED&audience=https%3A%2F%2Fapi.zscaler.com + body: grant_type=client_credentials&client_id=iplmcq3k7060d&client_secret=REDACTED&audience=https%3A%2F%2Fapi.zscaler.com headers: Accept: - application/json @@ -81,29 +9,29 @@ interactions: Connection: - keep-alive Content-Length: - - '147' + - '143' Content-Type: - application/x-www-form-urlencoded User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST - uri: https://identity.test.zscaler.com/oauth2/v1/token + uri: https://securitygeekio.zsloginbeta.net/oauth2/v1/token response: body: - string: '{"access_token":"REDACTED_TOKEN","token_type":"Bearer","expires_in":83999}' + string: '{"access_token":"REDACTED_TOKEN","token_type":"Bearer","expires_in":86399}' headers: cache-control: - no-cache, no-store, max-age=0, must-revalidate content-security-policy: - - 'default-src ''none'' ;connect-src https://securitygeekio.zslogin.net/;font-src + - 'default-src ''none'' ;connect-src https://securitygeekio.zsloginbeta.net/;font-src https://fonts.gstatic.com ;img-src data: https://www.zscaler.com https://info.zscaler.com ;script-src ''unsafe-inline'' ''unsafe-eval'' https://www.zscaler.com ;style-src - ''unsafe-inline'' https://fonts.googleapis.com ;frame-src https://securitygeekio.zslogin.net/ - https://securitygeekio-admin.zslogin.net/;frame-ancestors ;upgrade-insecure-requests' + ''unsafe-inline'' https://fonts.googleapis.com ;frame-src https://securitygeekio.zsloginbeta.net/ + https://securitygeekio-admin.zsloginbeta.net/;frame-ancestors ;upgrade-insecure-requests' content-type: - application/json;charset=UTF-8 date: - - Wed, 26 Nov 2025 23:51:43 GMT + - Mon, 09 Feb 2026 18:09:34 GMT expires: - '0' pragma: @@ -125,7 +53,7 @@ interactions: - SAMEORIGIN - SAMEORIGIN x-ratelimit-limit: - - 150, 150;w=1, 100000;w=60, 10000;w=60 + - 150, 150;w=1, 10000;w=60, 10000;w=60 x-ratelimit-remaining: - '149' x-ratelimit-reset: @@ -150,13 +78,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: POST - uri: https://api.zsapi.net/zia/api/v1/ruleLabels + uri: https://api.beta.zsapi.net/zia/api/v1/ruleLabels response: body: - string: '{"id":3339334,"name":"TestLabel_VCR_Integration","description":"Test - Description for VCR","lastModifiedTime":1764201106,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0}' + string: '{"id":1887090,"name":"TestLabel_VCR_Integration","description":"Test + Description for VCR","lastModifiedTime":1770660576,"lastModifiedBy":{"id":19475409,"name":"REDACTED"},"createdBy":{"id":19475409,"name":"REDACTED"},"referencedRuleCount":0}' headers: cache-control: - no-store, no-cache @@ -178,7 +106,7 @@ interactions: content-type: - application/json date: - - Wed, 26 Nov 2025 23:51:47 GMT + - Mon, 09 Feb 2026 18:09:37 GMT server: - Zscaler strict-transport-security: @@ -190,23 +118,23 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '3892' + - '1976' x-frame-options: - SAMEORIGIN x-oneapi-host: - - https://apiusw2.zsapi.net + - https://apiusw2.beta.zsapi.net x-oneapi-request-id: - - c1b4d3e1-09da-9c7a-86d9-bf0e38286b74 + - 5c42fd90-0b5a-9a4c-b954-38af9d70c708 x-oneapi-version: - - 109.1.85 + - 109.1.92 x-ratelimit-limit: - 5000, 5000;w=60 x-ratelimit-remaining: - - '4979' + - '4999' x-ratelimit-reset: - - '17' + - '25' x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 + - d5025a2a-9329-4262-b41d-eb669d6776de x-xss-protection: - 1; mode=block x-zscaler-mode: @@ -229,13 +157,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: PUT - uri: https://api.zsapi.net/zia/api/v1/ruleLabels/3339334 + uri: https://api.beta.zsapi.net/zia/api/v1/ruleLabels/1887090 response: body: - string: '{"id":3339334,"name":"UpdatedLabel_VCR_Integration","description":"Updated - Description for VCR","lastModifiedTime":1764201108,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0}' + string: '{"id":1887090,"name":"UpdatedLabel_VCR_Integration","description":"Updated + Description for VCR","lastModifiedTime":1770660577,"lastModifiedBy":{"id":19475409,"name":"REDACTED"},"createdBy":{"id":19475409,"name":"REDACTED"},"referencedRuleCount":0}' headers: cache-control: - no-store, no-cache @@ -257,7 +185,7 @@ interactions: content-type: - application/json date: - - Wed, 26 Nov 2025 23:51:48 GMT + - Mon, 09 Feb 2026 18:09:37 GMT server: - Zscaler strict-transport-security: @@ -269,23 +197,23 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '1314' + - '649' x-frame-options: - SAMEORIGIN x-oneapi-host: - - https://apiusw2.zsapi.net + - https://apiusw2.beta.zsapi.net x-oneapi-request-id: - - a5fb44f3-f30d-9515-9a88-241f6aba07f5 + - 7e1a9173-d033-9889-82d8-db7747270552 x-oneapi-version: - - 109.1.85 + - 109.1.92 x-ratelimit-limit: - 5000, 5000;w=60 x-ratelimit-remaining: - - '4978' + - '4998' x-ratelimit-reset: - - '13' + - '23' x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 + - d5025a2a-9329-4262-b41d-eb669d6776de x-xss-protection: - 1; mode=block x-zscaler-mode: @@ -307,13 +235,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET - uri: https://api.zsapi.net/zia/api/v1/ruleLabels/3339334 + uri: https://api.beta.zsapi.net/zia/api/v1/ruleLabels/1887090 response: body: - string: '{"id":3339334,"name":"UpdatedLabel_VCR_Integration","description":"Updated - Description for VCR","lastModifiedTime":1764201108,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0}' + string: '{"id":1887090,"name":"UpdatedLabel_VCR_Integration","description":"Updated + Description for VCR","lastModifiedTime":1770660577,"lastModifiedBy":{"id":19475409,"name":"REDACTED"},"createdBy":{"id":19475409,"name":"REDACTED"},"referencedRuleCount":0}' headers: cache-control: - no-store, no-cache @@ -335,7 +263,7 @@ interactions: content-type: - application/json date: - - Wed, 26 Nov 2025 23:51:49 GMT + - Mon, 09 Feb 2026 18:09:38 GMT server: - Zscaler strict-transport-security: @@ -347,23 +275,23 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '449' + - '246' x-frame-options: - SAMEORIGIN x-oneapi-host: - - https://apiusw2.zsapi.net + - https://apiusw2.beta.zsapi.net x-oneapi-request-id: - - d6de9403-2836-9486-b363-857527a82d95 + - d15b7057-77d5-96bf-9da2-43df86e6076b x-oneapi-version: - - 109.1.85 + - 109.1.92 x-ratelimit-limit: - 5000, 5000;w=60 x-ratelimit-remaining: - - '4977' + - '4997' x-ratelimit-reset: - - '12' + - '23' x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 + - d5025a2a-9329-4262-b41d-eb669d6776de x-xss-protection: - 1; mode=block x-zscaler-mode: @@ -385,13 +313,13 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: GET - uri: https://api.zsapi.net/zia/api/v1/ruleLabels?search=UpdatedLabel_VCR_Integration + uri: https://api.beta.zsapi.net/zia/api/v1/ruleLabels?search=UpdatedLabel_VCR_Integration response: body: - string: '[{"id":3339334,"name":"UpdatedLabel_VCR_Integration","description":"Updated - Description for VCR","lastModifiedTime":1764201108,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0}]' + string: '[{"id":1887090,"name":"UpdatedLabel_VCR_Integration","description":"Updated + Description for VCR","lastModifiedTime":1770660577,"lastModifiedBy":{"id":19475409,"name":"REDACTED"},"createdBy":{"id":19475409,"name":"REDACTED"},"referencedRuleCount":0}]' headers: cache-control: - no-store, no-cache @@ -413,7 +341,7 @@ interactions: content-type: - application/json date: - - Wed, 26 Nov 2025 23:51:58 GMT + - Mon, 09 Feb 2026 18:09:40 GMT server: - Zscaler strict-transport-security: @@ -425,23 +353,23 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '8756' + - '2735' x-frame-options: - SAMEORIGIN x-oneapi-host: - - https://apiusw2.zsapi.net + - https://apiusw2.beta.zsapi.net x-oneapi-request-id: - - 91d5390e-18e0-9710-a467-8d0ce9523970 + - 9871c002-641e-9e07-926f-428f2982a1ad x-oneapi-version: - - 109.1.85 + - 109.1.92 x-ratelimit-limit: - 5000, 5000;w=60 x-ratelimit-remaining: - - '4976' + - '4996' x-ratelimit-reset: - - '11' + - '22' x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 + - d5025a2a-9329-4262-b41d-eb669d6776de x-xss-protection: - 1; mode=block x-zscaler-mode: @@ -463,9 +391,9 @@ interactions: Content-Type: - application/json User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 + - zscaler-sdk-python/1.9.13 python/3.11.8 Darwin/25.2.0 method: DELETE - uri: https://api.zsapi.net/zia/api/v1/ruleLabels/3339334 + uri: https://api.beta.zsapi.net/zia/api/v1/ruleLabels/1887090 response: body: string: '' @@ -486,7 +414,7 @@ interactions: wss://analytex-us.userpilot.io; frame-src ''self'' https://help.zscaler.com/ https://help.zscalergov.net https://help.zscaler.us; manifest-src ''self''' date: - - Wed, 26 Nov 2025 23:51:59 GMT + - Mon, 09 Feb 2026 18:09:41 GMT server: - Zscaler strict-transport-security: @@ -496,23 +424,23 @@ interactions: x-content-type-options: - nosniff x-envoy-upstream-service-time: - - '1193' + - '596' x-frame-options: - SAMEORIGIN x-oneapi-host: - - https://apiusw2.zsapi.net + - https://apiusw2.beta.zsapi.net x-oneapi-request-id: - - 86266aa4-5274-967a-b8f6-f1389d2d84d4 + - 3b69eee2-6803-9ba9-afc5-1f0f4ce6fa74 x-oneapi-version: - - 109.1.85 + - 109.1.92 x-ratelimit-limit: - 5000, 5000;w=60 x-ratelimit-remaining: - - '4975' + - '4995' x-ratelimit-reset: - - '2' + - '19' x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 + - d5025a2a-9329-4262-b41d-eb669d6776de x-xss-protection: - 1; mode=block x-zscaler-mode: @@ -520,331 +448,4 @@ interactions: status: code: 204 message: No Content -- request: - body: '{}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '2' - Content-Type: - - application/json - User-Agent: - - zscaler-sdk-python/1.9.3 python/3.11.8 Darwin/24.6.0 - method: GET - uri: https://api.zsapi.net/zia/api/v1/ruleLabels - response: - body: - string: '[{"id":3315137,"name":"Bulk-Test-Label-1764169738-000","description":"Bulk - test label created for testing - 1/300","lastModifiedTime":1764169738,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315138,"name":"Bulk-Test-Label-1764169738-001","description":"Bulk - test label created for testing - 2/300","lastModifiedTime":1764169741,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315139,"name":"Bulk-Test-Label-1764169738-002","description":"Bulk - test label created for testing - 3/300","lastModifiedTime":1764169744,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315140,"name":"Bulk-Test-Label-1764169738-003","description":"Bulk - test label created for testing - 4/300","lastModifiedTime":1764169745,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315141,"name":"Bulk-Test-Label-1764169738-004","description":"Bulk - test label created for testing - 5/300","lastModifiedTime":1764169748,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315142,"name":"Bulk-Test-Label-1764169738-005","description":"Bulk - test label created for testing - 6/300","lastModifiedTime":1764169751,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315143,"name":"Bulk-Test-Label-1764169738-006","description":"Bulk - test label created for testing - 7/300","lastModifiedTime":1764169754,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315144,"name":"Bulk-Test-Label-1764169738-007","description":"Bulk - test label created for testing - 8/300","lastModifiedTime":1764169757,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315145,"name":"Bulk-Test-Label-1764169738-008","description":"Bulk - test label created for testing - 9/300","lastModifiedTime":1764169760,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315146,"name":"Bulk-Test-Label-1764169738-009","description":"Bulk - test label created for testing - 10/300","lastModifiedTime":1764169762,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315147,"name":"Bulk-Test-Label-1764169738-010","description":"Bulk - test label created for testing - 11/300","lastModifiedTime":1764169765,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315148,"name":"Bulk-Test-Label-1764169738-011","description":"Bulk - test label created for testing - 12/300","lastModifiedTime":1764169768,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315149,"name":"Bulk-Test-Label-1764169738-012","description":"Bulk - test label created for testing - 13/300","lastModifiedTime":1764169772,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315150,"name":"Bulk-Test-Label-1764169738-013","description":"Bulk - test label created for testing - 14/300","lastModifiedTime":1764169775,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315151,"name":"Bulk-Test-Label-1764169738-014","description":"Bulk - test label created for testing - 15/300","lastModifiedTime":1764169778,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315152,"name":"Bulk-Test-Label-1764169738-015","description":"Bulk - test label created for testing - 16/300","lastModifiedTime":1764169781,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315153,"name":"Bulk-Test-Label-1764169738-016","description":"Bulk - test label created for testing - 17/300","lastModifiedTime":1764169783,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315154,"name":"Bulk-Test-Label-1764169738-017","description":"Bulk - test label created for testing - 18/300","lastModifiedTime":1764169784,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315164,"name":"Bulk-Test-Label-1764169738-018","description":"Bulk - test label created for testing - 19/300","lastModifiedTime":1764169788,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315165,"name":"Bulk-Test-Label-1764169738-019","description":"Bulk - test label created for testing - 20/300","lastModifiedTime":1764169790,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315166,"name":"Bulk-Test-Label-1764169738-020","description":"Bulk - test label created for testing - 21/300","lastModifiedTime":1764169793,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315167,"name":"Bulk-Test-Label-1764169738-021","description":"Bulk - test label created for testing - 22/300","lastModifiedTime":1764169796,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315168,"name":"Bulk-Test-Label-1764169738-022","description":"Bulk - test label created for testing - 23/300","lastModifiedTime":1764169799,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315169,"name":"Bulk-Test-Label-1764169738-023","description":"Bulk - test label created for testing - 24/300","lastModifiedTime":1764169802,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315170,"name":"Bulk-Test-Label-1764169738-024","description":"Bulk - test label created for testing - 25/300","lastModifiedTime":1764169803,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315171,"name":"Bulk-Test-Label-1764169738-025","description":"Bulk - test label created for testing - 26/300","lastModifiedTime":1764169806,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315172,"name":"Bulk-Test-Label-1764169738-026","description":"Bulk - test label created for testing - 27/300","lastModifiedTime":1764169809,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315173,"name":"Bulk-Test-Label-1764169738-027","description":"Bulk - test label created for testing - 28/300","lastModifiedTime":1764169811,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315174,"name":"Bulk-Test-Label-1764169738-028","description":"Bulk - test label created for testing - 29/300","lastModifiedTime":1764169814,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315175,"name":"Bulk-Test-Label-1764169738-029","description":"Bulk - test label created for testing - 30/300","lastModifiedTime":1764169817,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315176,"name":"Bulk-Test-Label-1764169738-030","description":"Bulk - test label created for testing - 31/300","lastModifiedTime":1764169820,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315177,"name":"Bulk-Test-Label-1764169738-031","description":"Bulk - test label created for testing - 32/300","lastModifiedTime":1764169823,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315178,"name":"Bulk-Test-Label-1764169738-032","description":"Bulk - test label created for testing - 33/300","lastModifiedTime":1764169825,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315179,"name":"Bulk-Test-Label-1764169738-033","description":"Bulk - test label created for testing - 34/300","lastModifiedTime":1764169828,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315180,"name":"Bulk-Test-Label-1764169738-034","description":"Bulk - test label created for testing - 35/300","lastModifiedTime":1764169832,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315181,"name":"Bulk-Test-Label-1764169738-035","description":"Bulk - test label created for testing - 36/300","lastModifiedTime":1764169834,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315182,"name":"Bulk-Test-Label-1764169738-036","description":"Bulk - test label created for testing - 37/300","lastModifiedTime":1764169837,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315183,"name":"Bulk-Test-Label-1764169738-037","description":"Bulk - test label created for testing - 38/300","lastModifiedTime":1764169840,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315184,"name":"Bulk-Test-Label-1764169738-038","description":"Bulk - test label created for testing - 39/300","lastModifiedTime":1764169843,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315185,"name":"Bulk-Test-Label-1764169738-039","description":"Bulk - test label created for testing - 40/300","lastModifiedTime":1764169846,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315186,"name":"Bulk-Test-Label-1764169738-040","description":"Bulk - test label created for testing - 41/300","lastModifiedTime":1764169849,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315187,"name":"Bulk-Test-Label-1764169738-041","description":"Bulk - test label created for testing - 42/300","lastModifiedTime":1764169852,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315188,"name":"Bulk-Test-Label-1764169738-042","description":"Bulk - test label created for testing - 43/300","lastModifiedTime":1764169855,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315189,"name":"Bulk-Test-Label-1764169738-043","description":"Bulk - test label created for testing - 44/300","lastModifiedTime":1764169858,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315190,"name":"Bulk-Test-Label-1764169738-044","description":"Bulk - test label created for testing - 45/300","lastModifiedTime":1764169863,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315191,"name":"Bulk-Test-Label-1764169738-045","description":"Bulk - test label created for testing - 46/300","lastModifiedTime":1764169866,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315192,"name":"Bulk-Test-Label-1764169738-046","description":"Bulk - test label created for testing - 47/300","lastModifiedTime":1764169867,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315193,"name":"Bulk-Test-Label-1764169738-047","description":"Bulk - test label created for testing - 48/300","lastModifiedTime":1764169869,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315194,"name":"Bulk-Test-Label-1764169738-048","description":"Bulk - test label created for testing - 49/300","lastModifiedTime":1764169872,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315195,"name":"Bulk-Test-Label-1764169738-049","description":"Bulk - test label created for testing - 50/300","lastModifiedTime":1764169878,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315196,"name":"Bulk-Test-Label-1764169738-050","description":"Bulk - test label created for testing - 51/300","lastModifiedTime":1764169881,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315197,"name":"Bulk-Test-Label-1764169738-051","description":"Bulk - test label created for testing - 52/300","lastModifiedTime":1764169884,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315246,"name":"Bulk-Test-Label-1764169738-052","description":"Bulk - test label created for testing - 53/300","lastModifiedTime":1764169886,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315247,"name":"Bulk-Test-Label-1764169738-053","description":"Bulk - test label created for testing - 54/300","lastModifiedTime":1764169889,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315248,"name":"Bulk-Test-Label-1764169738-054","description":"Bulk - test label created for testing - 55/300","lastModifiedTime":1764169892,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315249,"name":"Bulk-Test-Label-1764169738-055","description":"Bulk - test label created for testing - 56/300","lastModifiedTime":1764169894,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315250,"name":"Bulk-Test-Label-1764169738-056","description":"Bulk - test label created for testing - 57/300","lastModifiedTime":1764169899,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315251,"name":"Bulk-Test-Label-1764169738-057","description":"Bulk - test label created for testing - 58/300","lastModifiedTime":1764169908,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315252,"name":"Bulk-Test-Label-1764169738-058","description":"Bulk - test label created for testing - 59/300","lastModifiedTime":1764169914,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315253,"name":"Bulk-Test-Label-1764169738-059","description":"Bulk - test label created for testing - 60/300","lastModifiedTime":1764169920,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315254,"name":"Bulk-Test-Label-1764169738-060","description":"Bulk - test label created for testing - 61/300","lastModifiedTime":1764169925,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315255,"name":"Bulk-Test-Label-1764169738-061","description":"Bulk - test label created for testing - 62/300","lastModifiedTime":1764169930,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315256,"name":"Bulk-Test-Label-1764169738-062","description":"Bulk - test label created for testing - 63/300","lastModifiedTime":1764169931,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315257,"name":"Bulk-Test-Label-1764169738-063","description":"Bulk - test label created for testing - 64/300","lastModifiedTime":1764169934,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315258,"name":"Bulk-Test-Label-1764169738-064","description":"Bulk - test label created for testing - 65/300","lastModifiedTime":1764169937,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315259,"name":"Bulk-Test-Label-1764169738-065","description":"Bulk - test label created for testing - 66/300","lastModifiedTime":1764169941,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315260,"name":"Bulk-Test-Label-1764169738-066","description":"Bulk - test label created for testing - 67/300","lastModifiedTime":1764169943,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315261,"name":"Bulk-Test-Label-1764169738-067","description":"Bulk - test label created for testing - 68/300","lastModifiedTime":1764169945,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315262,"name":"Bulk-Test-Label-1764169738-068","description":"Bulk - test label created for testing - 69/300","lastModifiedTime":1764169951,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315263,"name":"Bulk-Test-Label-1764169738-069","description":"Bulk - test label created for testing - 70/300","lastModifiedTime":1764169952,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315264,"name":"Bulk-Test-Label-1764169738-070","description":"Bulk - test label created for testing - 71/300","lastModifiedTime":1764169956,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315265,"name":"Bulk-Test-Label-1764169738-071","description":"Bulk - test label created for testing - 72/300","lastModifiedTime":1764169960,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315316,"name":"Bulk-Test-Label-1764169738-072","description":"Bulk - test label created for testing - 73/300","lastModifiedTime":1764169965,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315317,"name":"Bulk-Test-Label-1764169738-073","description":"Bulk - test label created for testing - 74/300","lastModifiedTime":1764169968,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315357,"name":"Bulk-Test-Label-1764169738-074","description":"Bulk - test label created for testing - 75/300","lastModifiedTime":1764169973,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315358,"name":"Bulk-Test-Label-1764169738-075","description":"Bulk - test label created for testing - 76/300","lastModifiedTime":1764169974,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315359,"name":"Bulk-Test-Label-1764169738-076","description":"Bulk - test label created for testing - 77/300","lastModifiedTime":1764169982,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315360,"name":"Bulk-Test-Label-1764169738-077","description":"Bulk - test label created for testing - 78/300","lastModifiedTime":1764169994,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315361,"name":"Bulk-Test-Label-1764169738-078","description":"Bulk - test label created for testing - 79/300","lastModifiedTime":1764170002,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315362,"name":"Bulk-Test-Label-1764169738-079","description":"Bulk - test label created for testing - 80/300","lastModifiedTime":1764170005,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315363,"name":"Bulk-Test-Label-1764169738-080","description":"Bulk - test label created for testing - 81/300","lastModifiedTime":1764170013,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315364,"name":"Bulk-Test-Label-1764169738-081","description":"Bulk - test label created for testing - 82/300","lastModifiedTime":1764170016,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315365,"name":"Bulk-Test-Label-1764169738-082","description":"Bulk - test label created for testing - 83/300","lastModifiedTime":1764170018,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315366,"name":"Bulk-Test-Label-1764169738-083","description":"Bulk - test label created for testing - 84/300","lastModifiedTime":1764170021,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315367,"name":"Bulk-Test-Label-1764169738-084","description":"Bulk - test label created for testing - 85/300","lastModifiedTime":1764170029,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315368,"name":"Bulk-Test-Label-1764169738-085","description":"Bulk - test label created for testing - 86/300","lastModifiedTime":1764170033,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315369,"name":"Bulk-Test-Label-1764169738-086","description":"Bulk - test label created for testing - 87/300","lastModifiedTime":1764170039,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315609,"name":"Bulk-Test-Label-1764169738-143","description":"Bulk - test label created for testing - 144/300","lastModifiedTime":1764170342,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315610,"name":"Bulk-Test-Label-1764169738-144","description":"Bulk - test label created for testing - 145/300","lastModifiedTime":1764170344,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315611,"name":"Bulk-Test-Label-1764169738-145","description":"Bulk - test label created for testing - 146/300","lastModifiedTime":1764170347,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315612,"name":"Bulk-Test-Label-1764169738-146","description":"Bulk - test label created for testing - 147/300","lastModifiedTime":1764170349,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315613,"name":"Bulk-Test-Label-1764169738-147","description":"Bulk - test label created for testing - 148/300","lastModifiedTime":1764170352,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315614,"name":"Bulk-Test-Label-1764169738-148","description":"Bulk - test label created for testing - 149/300","lastModifiedTime":1764170355,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315615,"name":"Bulk-Test-Label-1764169738-149","description":"Bulk - test label created for testing - 150/300","lastModifiedTime":1764170358,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315616,"name":"Bulk-Test-Label-1764169738-150","description":"Bulk - test label created for testing - 151/300","lastModifiedTime":1764170360,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315617,"name":"Bulk-Test-Label-1764169738-151","description":"Bulk - test label created for testing - 152/300","lastModifiedTime":1764170363,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315618,"name":"Bulk-Test-Label-1764169738-152","description":"Bulk - test label created for testing - 153/300","lastModifiedTime":1764170366,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315619,"name":"Bulk-Test-Label-1764169738-153","description":"Bulk - test label created for testing - 154/300","lastModifiedTime":1764170369,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315620,"name":"Bulk-Test-Label-1764169738-154","description":"Bulk - test label created for testing - 155/300","lastModifiedTime":1764170371,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315632,"name":"Bulk-Test-Label-1764169738-155","description":"Bulk - test label created for testing - 156/300","lastModifiedTime":1764170374,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315633,"name":"Bulk-Test-Label-1764169738-156","description":"Bulk - test label created for testing - 157/300","lastModifiedTime":1764170377,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315634,"name":"Bulk-Test-Label-1764169738-157","description":"Bulk - test label created for testing - 158/300","lastModifiedTime":1764170379,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315635,"name":"Bulk-Test-Label-1764169738-158","description":"Bulk - test label created for testing - 159/300","lastModifiedTime":1764170382,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315636,"name":"Bulk-Test-Label-1764169738-159","description":"Bulk - test label created for testing - 160/300","lastModifiedTime":1764170385,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315637,"name":"Bulk-Test-Label-1764169738-160","description":"Bulk - test label created for testing - 161/300","lastModifiedTime":1764170387,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315640,"name":"Bulk-Test-Label-1764169738-161","description":"Bulk - test label created for testing - 162/300","lastModifiedTime":1764170390,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315641,"name":"Bulk-Test-Label-1764169738-162","description":"Bulk - test label created for testing - 163/300","lastModifiedTime":1764170393,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315642,"name":"Bulk-Test-Label-1764169738-163","description":"Bulk - test label created for testing - 164/300","lastModifiedTime":1764170396,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315643,"name":"Bulk-Test-Label-1764169738-164","description":"Bulk - test label created for testing - 165/300","lastModifiedTime":1764170399,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315644,"name":"Bulk-Test-Label-1764169738-165","description":"Bulk - test label created for testing - 166/300","lastModifiedTime":1764170401,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315695,"name":"Bulk-Test-Label-1764169738-166","description":"Bulk - test label created for testing - 167/300","lastModifiedTime":1764170404,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315696,"name":"Bulk-Test-Label-1764169738-167","description":"Bulk - test label created for testing - 168/300","lastModifiedTime":1764170407,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315737,"name":"Bulk-Test-Label-1764169738-168","description":"Bulk - test label created for testing - 169/300","lastModifiedTime":1764170410,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315738,"name":"Bulk-Test-Label-1764169738-169","description":"Bulk - test label created for testing - 170/300","lastModifiedTime":1764170413,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315739,"name":"Bulk-Test-Label-1764169738-170","description":"Bulk - test label created for testing - 171/300","lastModifiedTime":1764170415,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315740,"name":"Bulk-Test-Label-1764169738-171","description":"Bulk - test label created for testing - 172/300","lastModifiedTime":1764170418,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315741,"name":"Bulk-Test-Label-1764169738-172","description":"Bulk - test label created for testing - 173/300","lastModifiedTime":1764170421,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315742,"name":"Bulk-Test-Label-1764169738-173","description":"Bulk - test label created for testing - 174/300","lastModifiedTime":1764170424,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315743,"name":"Bulk-Test-Label-1764169738-174","description":"Bulk - test label created for testing - 175/300","lastModifiedTime":1764170427,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315744,"name":"Bulk-Test-Label-1764169738-175","description":"Bulk - test label created for testing - 176/300","lastModifiedTime":1764170430,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315745,"name":"Bulk-Test-Label-1764169738-176","description":"Bulk - test label created for testing - 177/300","lastModifiedTime":1764170432,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315746,"name":"Bulk-Test-Label-1764169738-177","description":"Bulk - test label created for testing - 178/300","lastModifiedTime":1764170435,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315747,"name":"Bulk-Test-Label-1764169738-178","description":"Bulk - test label created for testing - 179/300","lastModifiedTime":1764170438,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315748,"name":"Bulk-Test-Label-1764169738-179","description":"Bulk - test label created for testing - 180/300","lastModifiedTime":1764170441,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315749,"name":"Bulk-Test-Label-1764169738-180","description":"Bulk - test label created for testing - 181/300","lastModifiedTime":1764170444,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315750,"name":"Bulk-Test-Label-1764169738-181","description":"Bulk - test label created for testing - 182/300","lastModifiedTime":1764170447,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315751,"name":"Bulk-Test-Label-1764169738-182","description":"Bulk - test label created for testing - 183/300","lastModifiedTime":1764170449,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315752,"name":"Bulk-Test-Label-1764169738-183","description":"Bulk - test label created for testing - 184/300","lastModifiedTime":1764170452,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315753,"name":"Bulk-Test-Label-1764169738-184","description":"Bulk - test label created for testing - 185/300","lastModifiedTime":1764170453,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315754,"name":"Bulk-Test-Label-1764169738-185","description":"Bulk - test label created for testing - 186/300","lastModifiedTime":1764170456,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315755,"name":"Bulk-Test-Label-1764169738-186","description":"Bulk - test label created for testing - 187/300","lastModifiedTime":1764170459,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315756,"name":"Bulk-Test-Label-1764169738-187","description":"Bulk - test label created for testing - 188/300","lastModifiedTime":1764170462,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315757,"name":"Bulk-Test-Label-1764169738-188","description":"Bulk - test label created for testing - 189/300","lastModifiedTime":1764170465,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315758,"name":"Bulk-Test-Label-1764169738-189","description":"Bulk - test label created for testing - 190/300","lastModifiedTime":1764170467,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315759,"name":"Bulk-Test-Label-1764169738-190","description":"Bulk - test label created for testing - 191/300","lastModifiedTime":1764170470,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315760,"name":"Bulk-Test-Label-1764169738-191","description":"Bulk - test label created for testing - 192/300","lastModifiedTime":1764170473,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315761,"name":"Bulk-Test-Label-1764169738-192","description":"Bulk - test label created for testing - 193/300","lastModifiedTime":1764170476,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315762,"name":"Bulk-Test-Label-1764169738-193","description":"Bulk - test label created for testing - 194/300","lastModifiedTime":1764170479,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315763,"name":"Bulk-Test-Label-1764169738-194","description":"Bulk - test label created for testing - 195/300","lastModifiedTime":1764170482,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315814,"name":"Bulk-Test-Label-1764169738-195","description":"Bulk - test label created for testing - 196/300","lastModifiedTime":1764170485,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315815,"name":"Bulk-Test-Label-1764169738-196","description":"Bulk - test label created for testing - 197/300","lastModifiedTime":1764170487,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315855,"name":"Bulk-Test-Label-1764169738-197","description":"Bulk - test label created for testing - 198/300","lastModifiedTime":1764170490,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315856,"name":"Bulk-Test-Label-1764169738-198","description":"Bulk - test label created for testing - 199/300","lastModifiedTime":1764170493,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315857,"name":"Bulk-Test-Label-1764169738-199","description":"Bulk - test label created for testing - 200/300","lastModifiedTime":1764170496,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315858,"name":"Bulk-Test-Label-1764169738-200","description":"Bulk - test label created for testing - 201/300","lastModifiedTime":1764170499,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315859,"name":"Bulk-Test-Label-1764169738-201","description":"Bulk - test label created for testing - 202/300","lastModifiedTime":1764170501,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315860,"name":"Bulk-Test-Label-1764169738-202","description":"Bulk - test label created for testing - 203/300","lastModifiedTime":1764170504,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315861,"name":"Bulk-Test-Label-1764169738-203","description":"Bulk - test label created for testing - 204/300","lastModifiedTime":1764170507,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315862,"name":"Bulk-Test-Label-1764169738-204","description":"Bulk - test label created for testing - 205/300","lastModifiedTime":1764170510,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315863,"name":"Bulk-Test-Label-1764169738-205","description":"Bulk - test label created for testing - 206/300","lastModifiedTime":1764170513,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315864,"name":"Bulk-Test-Label-1764169738-206","description":"Bulk - test label created for testing - 207/300","lastModifiedTime":1764170516,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315865,"name":"Bulk-Test-Label-1764169738-207","description":"Bulk - test label created for testing - 208/300","lastModifiedTime":1764170519,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315866,"name":"Bulk-Test-Label-1764169738-208","description":"Bulk - test label created for testing - 209/300","lastModifiedTime":1764170520,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315867,"name":"Bulk-Test-Label-1764169738-209","description":"Bulk - test label created for testing - 210/300","lastModifiedTime":1764170523,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315868,"name":"Bulk-Test-Label-1764169738-210","description":"Bulk - test label created for testing - 211/300","lastModifiedTime":1764170525,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315869,"name":"Bulk-Test-Label-1764169738-211","description":"Bulk - test label created for testing - 212/300","lastModifiedTime":1764170528,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315870,"name":"Bulk-Test-Label-1764169738-212","description":"Bulk - test label created for testing - 213/300","lastModifiedTime":1764170530,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315871,"name":"Bulk-Test-Label-1764169738-213","description":"Bulk - test label created for testing - 214/300","lastModifiedTime":1764170533,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315872,"name":"Bulk-Test-Label-1764169738-214","description":"Bulk - test label created for testing - 215/300","lastModifiedTime":1764170536,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315873,"name":"Bulk-Test-Label-1764169738-215","description":"Bulk - test label created for testing - 216/300","lastModifiedTime":1764170538,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315874,"name":"Bulk-Test-Label-1764169738-216","description":"Bulk - test label created for testing - 217/300","lastModifiedTime":1764170540,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315875,"name":"Bulk-Test-Label-1764169738-217","description":"Bulk - test label created for testing - 218/300","lastModifiedTime":1764170543,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315876,"name":"Bulk-Test-Label-1764169738-218","description":"Bulk - test label created for testing - 219/300","lastModifiedTime":1764170546,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315877,"name":"Bulk-Test-Label-1764169738-219","description":"Bulk - test label created for testing - 220/300","lastModifiedTime":1764170549,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315878,"name":"Bulk-Test-Label-1764169738-220","description":"Bulk - test label created for testing - 221/300","lastModifiedTime":1764170552,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315879,"name":"Bulk-Test-Label-1764169738-221","description":"Bulk - test label created for testing - 222/300","lastModifiedTime":1764170554,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315880,"name":"Bulk-Test-Label-1764169738-222","description":"Bulk - test label created for testing - 223/300","lastModifiedTime":1764170557,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315881,"name":"Bulk-Test-Label-1764169738-223","description":"Bulk - test label created for testing - 224/300","lastModifiedTime":1764170560,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315882,"name":"Bulk-Test-Label-1764169738-224","description":"Bulk - test label created for testing - 225/300","lastModifiedTime":1764170563,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315883,"name":"Bulk-Test-Label-1764169738-225","description":"Bulk - test label created for testing - 226/300","lastModifiedTime":1764170566,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315884,"name":"Bulk-Test-Label-1764169738-226","description":"Bulk - test label created for testing - 227/300","lastModifiedTime":1764170568,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315885,"name":"Bulk-Test-Label-1764169738-227","description":"Bulk - test label created for testing - 228/300","lastModifiedTime":1764170571,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315886,"name":"Bulk-Test-Label-1764169738-228","description":"Bulk - test label created for testing - 229/300","lastModifiedTime":1764170574,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315887,"name":"Bulk-Test-Label-1764169738-229","description":"Bulk - test label created for testing - 230/300","lastModifiedTime":1764170576,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315888,"name":"Bulk-Test-Label-1764169738-230","description":"Bulk - test label created for testing - 231/300","lastModifiedTime":1764170579,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315889,"name":"Bulk-Test-Label-1764169738-231","description":"Bulk - test label created for testing - 232/300","lastModifiedTime":1764170582,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315890,"name":"Bulk-Test-Label-1764169738-232","description":"Bulk - test label created for testing - 233/300","lastModifiedTime":1764170585,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315891,"name":"Bulk-Test-Label-1764169738-233","description":"Bulk - test label created for testing - 234/300","lastModifiedTime":1764170587,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315892,"name":"Bulk-Test-Label-1764169738-234","description":"Bulk - test label created for testing - 235/300","lastModifiedTime":1764170590,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315893,"name":"Bulk-Test-Label-1764169738-235","description":"Bulk - test label created for testing - 236/300","lastModifiedTime":1764170593,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315894,"name":"Bulk-Test-Label-1764169738-236","description":"Bulk - test label created for testing - 237/300","lastModifiedTime":1764170596,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315895,"name":"Bulk-Test-Label-1764169738-237","description":"Bulk - test label created for testing - 238/300","lastModifiedTime":1764170599,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315896,"name":"Bulk-Test-Label-1764169738-238","description":"Bulk - test label created for testing - 239/300","lastModifiedTime":1764170602,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315897,"name":"Bulk-Test-Label-1764169738-239","description":"Bulk - test label created for testing - 240/300","lastModifiedTime":1764170605,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315898,"name":"Bulk-Test-Label-1764169738-240","description":"Bulk - test label created for testing - 241/300","lastModifiedTime":1764170608,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315899,"name":"Bulk-Test-Label-1764169738-241","description":"Bulk - test label created for testing - 242/300","lastModifiedTime":1764170610,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315900,"name":"Bulk-Test-Label-1764169738-242","description":"Bulk - test label created for testing - 243/300","lastModifiedTime":1764170613,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315901,"name":"Bulk-Test-Label-1764169738-243","description":"Bulk - test label created for testing - 244/300","lastModifiedTime":1764170616,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315902,"name":"Bulk-Test-Label-1764169738-244","description":"Bulk - test label created for testing - 245/300","lastModifiedTime":1764170619,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315903,"name":"Bulk-Test-Label-1764169738-245","description":"Bulk - test label created for testing - 246/300","lastModifiedTime":1764170620,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315904,"name":"Bulk-Test-Label-1764169738-246","description":"Bulk - test label created for testing - 247/300","lastModifiedTime":1764170623,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315905,"name":"Bulk-Test-Label-1764169738-247","description":"Bulk - test label created for testing - 248/300","lastModifiedTime":1764170626,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315907,"name":"Bulk-Test-Label-1764169738-248","description":"Bulk - test label created for testing - 249/300","lastModifiedTime":1764170629,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315908,"name":"Bulk-Test-Label-1764169738-249","description":"Bulk - test label created for testing - 250/300","lastModifiedTime":1764170631,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315909,"name":"Bulk-Test-Label-1764169738-250","description":"Bulk - test label created for testing - 251/300","lastModifiedTime":1764170634,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315910,"name":"Bulk-Test-Label-1764169738-251","description":"Bulk - test label created for testing - 252/300","lastModifiedTime":1764170637,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315916,"name":"Bulk-Test-Label-1764169738-252","description":"Bulk - test label created for testing - 253/300","lastModifiedTime":1764170640,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315918,"name":"Bulk-Test-Label-1764169738-253","description":"Bulk - test label created for testing - 254/300","lastModifiedTime":1764170642,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315919,"name":"Bulk-Test-Label-1764169738-254","description":"Bulk - test label created for testing - 255/300","lastModifiedTime":1764170645,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315920,"name":"Bulk-Test-Label-1764169738-255","description":"Bulk - test label created for testing - 256/300","lastModifiedTime":1764170648,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315921,"name":"Bulk-Test-Label-1764169738-256","description":"Bulk - test label created for testing - 257/300","lastModifiedTime":1764170650,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315922,"name":"Bulk-Test-Label-1764169738-257","description":"Bulk - test label created for testing - 258/300","lastModifiedTime":1764170653,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315923,"name":"Bulk-Test-Label-1764169738-258","description":"Bulk - test label created for testing - 259/300","lastModifiedTime":1764170656,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315924,"name":"Bulk-Test-Label-1764169738-259","description":"Bulk - test label created for testing - 260/300","lastModifiedTime":1764170659,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315925,"name":"Bulk-Test-Label-1764169738-260","description":"Bulk - test label created for testing - 261/300","lastModifiedTime":1764170661,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315926,"name":"Bulk-Test-Label-1764169738-261","description":"Bulk - test label created for testing - 262/300","lastModifiedTime":1764170664,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315927,"name":"Bulk-Test-Label-1764169738-262","description":"Bulk - test label created for testing - 263/300","lastModifiedTime":1764170667,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315928,"name":"Bulk-Test-Label-1764169738-263","description":"Bulk - test label created for testing - 264/300","lastModifiedTime":1764170670,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3315929,"name":"Bulk-Test-Label-1764169738-264","description":"Bulk - test label created for testing - 265/300","lastModifiedTime":1764170673,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316309,"name":"Bulk-Test-Label-1764171280-000","description":"Bulk - test label created for testing - 1/300","lastModifiedTime":1764171281,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316310,"name":"Bulk-Test-Label-1764171280-001","description":"Bulk - test label created for testing - 2/300","lastModifiedTime":1764171284,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316311,"name":"Bulk-Test-Label-1764171280-002","description":"Bulk - test label created for testing - 3/300","lastModifiedTime":1764171287,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316312,"name":"Bulk-Test-Label-1764171280-003","description":"Bulk - test label created for testing - 4/300","lastModifiedTime":1764171290,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316313,"name":"Bulk-Test-Label-1764171280-004","description":"Bulk - test label created for testing - 5/300","lastModifiedTime":1764171293,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316314,"name":"Bulk-Test-Label-1764171280-005","description":"Bulk - test label created for testing - 6/300","lastModifiedTime":1764171296,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316315,"name":"Bulk-Test-Label-1764171280-006","description":"Bulk - test label created for testing - 7/300","lastModifiedTime":1764171299,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316316,"name":"Bulk-Test-Label-1764171280-007","description":"Bulk - test label created for testing - 8/300","lastModifiedTime":1764171301,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316317,"name":"Bulk-Test-Label-1764171280-008","description":"Bulk - test label created for testing - 9/300","lastModifiedTime":1764171304,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316318,"name":"Bulk-Test-Label-1764171280-009","description":"Bulk - test label created for testing - 10/300","lastModifiedTime":1764171307,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316319,"name":"Bulk-Test-Label-1764171280-010","description":"Bulk - test label created for testing - 11/300","lastModifiedTime":1764171310,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316320,"name":"Bulk-Test-Label-1764171280-011","description":"Bulk - test label created for testing - 12/300","lastModifiedTime":1764171313,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316321,"name":"Bulk-Test-Label-1764171280-012","description":"Bulk - test label created for testing - 13/300","lastModifiedTime":1764171316,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316322,"name":"Bulk-Test-Label-1764171280-013","description":"Bulk - test label created for testing - 14/300","lastModifiedTime":1764171319,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316323,"name":"Bulk-Test-Label-1764171280-014","description":"Bulk - test label created for testing - 15/300","lastModifiedTime":1764171322,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316324,"name":"Bulk-Test-Label-1764171280-015","description":"Bulk - test label created for testing - 16/300","lastModifiedTime":1764171325,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316325,"name":"Bulk-Test-Label-1764171280-016","description":"Bulk - test label created for testing - 17/300","lastModifiedTime":1764171327,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316326,"name":"Bulk-Test-Label-1764171280-017","description":"Bulk - test label created for testing - 18/300","lastModifiedTime":1764171330,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316327,"name":"Bulk-Test-Label-1764171280-018","description":"Bulk - test label created for testing - 19/300","lastModifiedTime":1764171333,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316328,"name":"Bulk-Test-Label-1764171280-019","description":"Bulk - test label created for testing - 20/300","lastModifiedTime":1764171335,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316329,"name":"Bulk-Test-Label-1764171280-020","description":"Bulk - test label created for testing - 21/300","lastModifiedTime":1764171338,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316330,"name":"Bulk-Test-Label-1764171280-021","description":"Bulk - test label created for testing - 22/300","lastModifiedTime":1764171341,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316331,"name":"Bulk-Test-Label-1764171280-022","description":"Bulk - test label created for testing - 23/300","lastModifiedTime":1764171344,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316332,"name":"Bulk-Test-Label-1764171280-023","description":"Bulk - test label created for testing - 24/300","lastModifiedTime":1764171346,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316333,"name":"Bulk-Test-Label-1764171280-024","description":"Bulk - test label created for testing - 25/300","lastModifiedTime":1764171349,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316334,"name":"Bulk-Test-Label-1764171280-025","description":"Bulk - test label created for testing - 26/300","lastModifiedTime":1764171352,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316335,"name":"Bulk-Test-Label-1764171280-026","description":"Bulk - test label created for testing - 27/300","lastModifiedTime":1764171355,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316336,"name":"Bulk-Test-Label-1764171280-027","description":"Bulk - test label created for testing - 28/300","lastModifiedTime":1764171357,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316337,"name":"Bulk-Test-Label-1764171280-028","description":"Bulk - test label created for testing - 29/300","lastModifiedTime":1764171360,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316338,"name":"Bulk-Test-Label-1764171280-029","description":"Bulk - test label created for testing - 30/300","lastModifiedTime":1764171363,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316339,"name":"Bulk-Test-Label-1764171280-030","description":"Bulk - test label created for testing - 31/300","lastModifiedTime":1764171366,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316340,"name":"Bulk-Test-Label-1764171280-031","description":"Bulk - test label created for testing - 32/300","lastModifiedTime":1764171369,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316341,"name":"Bulk-Test-Label-1764171280-032","description":"Bulk - test label created for testing - 33/300","lastModifiedTime":1764171371,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316342,"name":"Bulk-Test-Label-1764171280-033","description":"Bulk - test label created for testing - 34/300","lastModifiedTime":1764171374,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316343,"name":"Bulk-Test-Label-1764171280-034","description":"Bulk - test label created for testing - 35/300","lastModifiedTime":1764171377,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316344,"name":"Bulk-Test-Label-1764171280-035","description":"Bulk - test label created for testing - 36/300","lastModifiedTime":1764171380,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316345,"name":"Bulk-Test-Label-1764171280-036","description":"Bulk - test label created for testing - 37/300","lastModifiedTime":1764171382,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316346,"name":"Bulk-Test-Label-1764171280-037","description":"Bulk - test label created for testing - 38/300","lastModifiedTime":1764171385,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316397,"name":"Bulk-Test-Label-1764171280-038","description":"Bulk - test label created for testing - 39/300","lastModifiedTime":1764171388,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316398,"name":"Bulk-Test-Label-1764171280-039","description":"Bulk - test label created for testing - 40/300","lastModifiedTime":1764171391,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0},{"id":3316438,"name":"Bulk-Test-Label-1764171280-040","description":"Bulk - test label created for testing - 41/300","lastModifiedTime":1764171394,"lastModifiedBy":{"id":117810311,"name":"REDACTED"},"createdBy":{"id":117810311,"name":"REDACTED"},"referencedRuleCount":0}]' - headers: - cache-control: - - no-store, no-cache - content-disposition: - - attachment; filename="api.json" - content-encoding: - - gzip - content-security-policy: - - 'default-src ''none''; img-src ''self'' data: https://www.zscaler.com https://www.zscaler.fr - https://a.tile.openstreetmap.org https://b.tile.openstreetmap.org - https://c.tile.openstreetmap.org https://webapi.zscaler.com - https://cdn.zscaler.com https://server.arcgisonline.com https://fast.wistia.com - https://cms.zscaler.com; script-src ''self'' ''unsafe-eval'' https://*.userpilot.io - https://webapi.zscaler.com/ https://www.zscaler.com/api/admin-ui-messages/ - https://webapi.zscaler.com/ https://fast.wistia.com; style-src - ''unsafe-inline'' https:; font-src ''self''; connect-src ''self'' https://*.userpilot.io - wss://analytex-us.userpilot.io; frame-src ''self'' https://help.zscaler.com/ - https://help.zscalergov.net https://help.zscaler.us; manifest-src ''self''' - content-type: - - application/json - date: - - Wed, 26 Nov 2025 23:52:00 GMT - server: - - Zscaler - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - vary: - - accept-encoding, Accept-Encoding - x-content-type-options: - - nosniff - x-envoy-upstream-service-time: - - '442' - x-frame-options: - - SAMEORIGIN - x-oneapi-host: - - https://apiusw2.zsapi.net - x-oneapi-request-id: - - f45163ab-f290-98a7-8fde-e68a3ebd4b05 - x-oneapi-version: - - 109.1.85 - x-ratelimit-limit: - - 5000, 5000;w=60 - x-ratelimit-remaining: - - '4974' - x-ratelimit-reset: - - '1' - x-transaction-id: - - 3da1ff33-38d1-45bf-a55b-c06a17433c25 - x-xss-protection: - - 1; mode=block - x-zscaler-mode: - - read-write - status: - code: 200 - message: OK version: 1 diff --git a/tests/integration/zia/sweep/run_sweep.py b/tests/integration/zia/sweep/run_sweep.py index 23e4ba2f..181fcbec 100644 --- a/tests/integration/zia/sweep/run_sweep.py +++ b/tests/integration/zia/sweep/run_sweep.py @@ -16,6 +16,13 @@ import os import sys +from pathlib import Path + +# Add project root to path so zscaler is importable when run as script +_project_root = Path(__file__).resolve().parent.parent.parent.parent.parent +if str(_project_root) not in sys.path: + sys.path.insert(0, str(_project_root)) + import logging from zscaler import ZscalerClient @@ -97,7 +104,7 @@ def sweep_rule_labels(self): if error: raise Exception(f"Error listing rule labels: {error}") - test_labels = [lab for lab in labels if hasattr(lab, "name") and lab.name.startswith("tests-")] + test_labels = [lab for lab in labels if hasattr(lab, "name") and lab.name.startswith("Bulk-Test-Label-")] logging.info(f"Found {len(test_labels)} rule labels to delete.") for label in test_labels: diff --git a/tests/integration/zia/test_rule_labels.py b/tests/integration/zia/test_rule_labels.py index df0805c1..7e9cbeae 100644 --- a/tests/integration/zia/test_rule_labels.py +++ b/tests/integration/zia/test_rule_labels.py @@ -19,6 +19,9 @@ from tests.integration.zia.conftest import MockZIAClient +# Deterministic search string for VCR - scopes list to avoid recording hundreds of labels +VCR_LIST_SEARCH = "UpdatedLabel_VCR_Integration" + @pytest.fixture def fs(): @@ -32,11 +35,13 @@ class TestRuleLabels: These tests use VCR to record and replay HTTP interactions. - First run with MOCK_TESTS=false records cassettes - Subsequent runs use recorded cassettes (no API calls) + + Uses scoped search in list_labels to avoid recording tenant-wide data (hundreds of labels). """ @pytest.mark.vcr() def test_rule_labels_lifecycle(self, fs): - """Test complete rule label CRUD lifecycle.""" + """Test complete rule label CRUD lifecycle with a single resource.""" client = MockZIAClient(fs) errors = [] label_id = None @@ -76,10 +81,12 @@ def test_rule_labels_lifecycle(self, fs): except Exception as e: errors.append(f"Exception during get_label: {str(e)}") - # Test: List Rule Labels + # Test: List Rule Labels (scoped search - finds our label before delete) try: if update_label: - labels, _, error = client.zia.rule_labels.list_labels(query_params={"search": update_label.name}) + labels, _, error = client.zia.rule_labels.list_labels( + query_params={"search": update_label.name} + ) assert error is None, f"List Labels Error: {error}" assert labels is not None and isinstance(labels, list), "No labels found or invalid format." except Exception as e: @@ -100,10 +107,13 @@ def test_rule_labels_lifecycle(self, fs): @pytest.mark.vcr() def test_list_rule_labels(self, fs): - """Test listing rule labels.""" + """Test listing rule labels with scoped search (VCR-friendly, avoids recording hundreds of labels).""" client = MockZIAClient(fs) - labels, _, error = client.zia.rule_labels.list_labels() + # Use scoped search to avoid fetching all tenant labels - returns [] or few results + labels, _, error = client.zia.rule_labels.list_labels( + query_params={"search": VCR_LIST_SEARCH} + ) assert error is None, f"List Labels Error: {error}" assert labels is not None, "Labels list is None" assert isinstance(labels, list), "Labels is not a list" diff --git a/zscaler/config/config_setter.py b/zscaler/config/config_setter.py index 7e5a7e35..606ad2cd 100644 --- a/zscaler/config/config_setter.py +++ b/zscaler/config/config_setter.py @@ -3,9 +3,8 @@ import logging import yaml from zscaler.constants import _GLOBAL_YAML_PATH, _LOCAL_YAML_PATH -from flatdict import FlatDict -from zscaler.helpers import to_snake_case +from zscaler.helpers import to_snake_case, flatten_dict, unflatten_dict logger = logging.getLogger(__name__) @@ -74,12 +73,10 @@ def _prune_config(self, config): with no value """ # logger.debug("Pruning configuration to remove empty fields.") - flat_current_config = FlatDict(config, delimiter="_") - for key in flat_current_config.keys(): - if flat_current_config.get(key) == "": - del flat_current_config[key] - - return flat_current_config.as_dict() + flat_current_config = flatten_dict(config, delimiter="_") + # Remove empty values + flat_current_config = {k: v for k, v in flat_current_config.items() if v != ""} + return unflatten_dict(flat_current_config, delimiter="_") def _update_config(self): """ @@ -151,16 +148,19 @@ def _apply_default_values(self): def _apply_config(self, new_config: dict): """Apply a config dictionary to the current config, overwriting values""" # logger.debug("Applying new configuration settings.") - flat_current_client = FlatDict(self._config["client"], delimiter="_") - flat_current_testing = FlatDict(self._config["testing"], delimiter="_") + flat_current_client = flatten_dict(self._config["client"], delimiter="_") + flat_current_testing = flatten_dict(self._config["testing"], delimiter="_") - flat_new_client = FlatDict(new_config.get("client", {}), delimiter="_") - flat_new_testing = FlatDict(new_config.get("testing", {}), delimiter="_") + flat_new_client = flatten_dict(new_config.get("client", {}), delimiter="_") + flat_new_testing = flatten_dict(new_config.get("testing", {}), delimiter="_") flat_current_client.update(flat_new_client) flat_current_testing.update(flat_new_testing) - self._config = {"client": flat_current_client.as_dict(), "testing": flat_current_testing.as_dict()} + self._config = { + "client": unflatten_dict(flat_current_client, delimiter="_"), + "testing": unflatten_dict(flat_current_testing, delimiter="_"), + } def _apply_yaml_config(self, path: str): """This method applies a YAML configuration to the Zscaler Client Config""" @@ -181,11 +181,11 @@ def _apply_env_config(self, conf_key): # logger.debug(f"Applying environment variables for {conf_key} configuration.") # Flatten current config and join with underscores # (for environment variable format) - flattened_config = FlatDict(self._config.get(conf_key, {}), delimiter="_") + flattened_config = flatten_dict(self._config.get(conf_key, {}), delimiter="_") flattened_keys = flattened_config.keys() # Create empty result config and populate - updated_config = FlatDict({}, delimiter="_") + updated_config = {} # Go through keys and search for it in the environment vars # using the format described in the README @@ -195,4 +195,4 @@ def _apply_env_config(self, conf_key): if env_value is not None: updated_config[key] = env_value - self._apply_config({conf_key: updated_config.as_dict()}) + self._apply_config({conf_key: unflatten_dict(updated_config, delimiter="_")}) diff --git a/zscaler/config/config_validator.py b/zscaler/config/config_validator.py index c70badbf..a30a99cc 100644 --- a/zscaler/config/config_validator.py +++ b/zscaler/config/config_validator.py @@ -82,6 +82,11 @@ def _validate_client_id(self, client_id): client_id_errors = [] # Ensure client ID is provided + if client_id is None: + client_id_errors.append(ERROR_MESSAGE_CLIENT_ID_MISSING) + logging.warning("Client ID is missing.") + return client_id_errors + client_id = client_id.strip().lower() if not client_id: client_id_errors.append(ERROR_MESSAGE_CLIENT_ID_MISSING) diff --git a/zscaler/helpers.py b/zscaler/helpers.py index 1451d4f7..c54a66d0 100644 --- a/zscaler/helpers.py +++ b/zscaler/helpers.py @@ -349,6 +349,65 @@ def convert_keys_to_camel_case(data): return data +def flatten_dict(d, parent_key="", delimiter="_"): + """ + Flatten a nested dictionary into a single-level dictionary with concatenated keys. + + Args: + d: Dictionary to flatten + parent_key: Prefix for keys (used in recursion) + delimiter: String to use between key levels + + Returns: + Flattened dictionary + + Examples: + >>> flatten_dict({"a": {"b": 1, "c": 2}}) + {'a_b': 1, 'a_c': 2} + + >>> flatten_dict({"client": {"cache": {"enabled": True}}}) + {'client_cache_enabled': True} + """ + items = [] + for k, v in d.items(): + new_key = f"{parent_key}{delimiter}{k}" if parent_key else k + if isinstance(v, dict): + items.extend(flatten_dict(v, new_key, delimiter).items()) + else: + items.append((new_key, v)) + return dict(items) + + +def unflatten_dict(d, delimiter="_"): + """ + Unflatten a dictionary with concatenated keys into a nested dictionary. + + Args: + d: Flattened dictionary to unflatten + delimiter: String delimiter used between key levels + + Returns: + Nested dictionary + + Examples: + >>> unflatten_dict({"a_b": 1, "a_c": 2}) + {'a': {'b': 1, 'c': 2}} + + >>> unflatten_dict({"client_cache_enabled": True}) + {'client': {'cache': {'enabled': True}}} + """ + result = {} + for key, value in d.items(): + parts = key.split(delimiter) + current = result + for part in parts[:-1]: + if part not in current: + current[part] = {} + current = current[part] + current[parts[-1]] = value + return result + + def convert_keys_to_camel_case_selective(data, preserve_snake_case_keys=None): """ Recursively convert keys to camelCase while preserving specific snake_case keys. diff --git a/zscaler/oneapi_client.py b/zscaler/oneapi_client.py index 60ed6610..0db0f34a 100644 --- a/zscaler/oneapi_client.py +++ b/zscaler/oneapi_client.py @@ -16,14 +16,17 @@ from zscaler.zia.zia_service import ZIAService from zscaler.zpa.zpa_service import ZPAService from zscaler.zwa.zwa_service import ZWAService +# from zscaler.binsights.binsights_service import BIService from zscaler.zidentity.zidentity_service import ZIdentityService from zscaler.zeasm.zeasm_service import ZEASMService +from zscaler.zaiguard.zaiguard_service import ZGuardService from zscaler.zcc.legacy import LegacyZCCClientHelper from zscaler.ztw.legacy import LegacyZTWClientHelper from zscaler.zdx.legacy import LegacyZDXClientHelper from zscaler.zpa.legacy import LegacyZPAClientHelper from zscaler.zia.legacy import LegacyZIAClientHelper from zscaler.zwa.legacy import LegacyZWAClientHelper +from zscaler.zaiguard.legacy import LegacyZGuardClientHelper TLegacy = TypeVar("TLegacy") @@ -40,6 +43,8 @@ def __init__( zpa_legacy_client: Optional[LegacyZPAClientHelper] = None, zia_legacy_client: Optional[LegacyZIAClientHelper] = None, zwa_legacy_client: Optional[LegacyZWAClientHelper] = None, + zguard_legacy_client: Optional[LegacyZGuardClientHelper] = None, + use_legacy_client: bool = False, ) -> None: self.use_legacy_client = use_legacy_client @@ -49,6 +54,7 @@ def __init__( self.zpa_legacy_client = zpa_legacy_client self.zia_legacy_client = zia_legacy_client self.zwa_legacy_client = zwa_legacy_client + self.zguard_legacy_client = zguard_legacy_client # ZCC Legacy client initialization logic if use_legacy_client and zcc_legacy_client: @@ -98,6 +104,14 @@ def __init__( self.logger.info("Legacy ZTWService client initialized successfully.") return + # ZGuard Legacy client initialization logic + if use_legacy_client and zguard_legacy_client: + self._config = {} + self._request_executor = zguard_legacy_client + self.logger = logging.getLogger(__name__) + self.logger.info("Legacy ZGuard client initialized successfully.") + return + # Assuming user_config is a dictionary or an object with a 'logging' attribute logging_config = ( user_config.get("logging", {}) if isinstance(user_config, dict) else getattr(user_config, "logging", {}) @@ -108,6 +122,7 @@ def __init__( self.zpa_legacy_client = zpa_legacy_client self.zia_legacy_client = zia_legacy_client self.zwa_legacy_client = zwa_legacy_client + self.zguard_legacy_client = zguard_legacy_client # Extract enabled and verbose from the logging configuration enabled = logging_config.get("enabled", None) @@ -182,6 +197,7 @@ def __init__( self.zpa_legacy_client, self.zia_legacy_client, self.zwa_legacy_client, + self.zguard_legacy_client, ) # self.logger.debug("Request executor initialized.") @@ -195,7 +211,9 @@ def __init__( self._zidentity = None self._zeasm = None self._zins = None # Z-Insights (GraphQL Analytics API) + # self._bi = None # self.logger.debug("Client initialized successfully.") + self._zguard = None def authenticate(self): """ @@ -265,13 +283,27 @@ def zidentity(self): if self._zidentity is None: self._zidentity = ZIdentityService(self._request_executor) return self._zidentity - + + # @property + # def bi(self): + # if self._bi is None: + # self._bi = BIService(self._request_executor) + # return self._bi + @property def zeasm(self): if self._zeasm is None: self._zeasm = ZEASMService(self._request_executor) return self._zeasm + @property + def zguard(self): + if self.use_legacy_client: + return self._require_legacy_client("ZGuard", self.zguard_legacy_client) + if self._zguard is None: + self._zguard = ZGuardService(self._request_executor) + return self._zguard + @property def zinsights(self): """ @@ -553,3 +585,27 @@ def __init__( request_executor_impl=request_executor_impl, ) super().__init__(config, zwa_legacy_client=legacy_helper, use_legacy_client=True) + + +class LegacyZGuardClient(Client): + def __init__( + self, + config: dict = {}, + ): + api_key = config.get("api_key", os.getenv("AIGUARD_API_KEY")) + cloud = config.get("cloud", os.getenv("AIGUARD_CLOUD", "us1")) + timeout = config.get("timeout", 240) + cache = config.get("cache", None) + fail_safe = config.get("failSafe", None) + request_executor_impl = config.get("requestExecutor", None) + + # Initialize the LegacyZGuardClientHelper with the extracted parameters + legacy_helper = LegacyZGuardClientHelper( + api_key=api_key, + cloud=cloud, + timeout=timeout, + cache=cache, + fail_safe=fail_safe, + request_executor_impl=request_executor_impl, + ) + super().__init__(config, zguard_legacy_client=legacy_helper, use_legacy_client=True) diff --git a/zscaler/oneapi_http_client.py b/zscaler/oneapi_http_client.py index f1a8bc1f..02921776 100644 --- a/zscaler/oneapi_http_client.py +++ b/zscaler/oneapi_http_client.py @@ -10,6 +10,7 @@ from zscaler.zpa.legacy import LegacyZPAClientHelper from zscaler.zia.legacy import LegacyZIAClientHelper from zscaler.zwa.legacy import LegacyZWAClientHelper +from zscaler.zaiguard.legacy import LegacyZGuardClientHelper from urllib.parse import urlparse logger = logging.getLogger(__name__) @@ -32,6 +33,7 @@ def __init__( zpa_legacy_client: Optional[LegacyZPAClientHelper] = None, zia_legacy_client: Optional[LegacyZIAClientHelper] = None, zwa_legacy_client: Optional[LegacyZWAClientHelper] = None, + zguard_legacy_client: Optional[LegacyZGuardClientHelper] = None, ) -> None: # Get headers from Request Executor @@ -42,7 +44,8 @@ def __init__( self.zpa_legacy_client: Optional[LegacyZPAClientHelper] = zpa_legacy_client self.zia_legacy_client: Optional[LegacyZIAClientHelper] = zia_legacy_client self.zwa_legacy_client: Optional[LegacyZWAClientHelper] = zwa_legacy_client - + self.zguard_legacy_client: Optional[LegacyZGuardClientHelper] = zguard_legacy_client + # Determine if legacy clients are enabled self.use_zcc_legacy_client: bool = zcc_legacy_client is not None self.use_ztw_legacy_client: bool = ztw_legacy_client is not None @@ -50,7 +53,8 @@ def __init__( self.use_zpa_legacy_client: bool = zpa_legacy_client is not None self.use_zia_legacy_client: bool = zia_legacy_client is not None self.use_zwa_legacy_client: bool = zwa_legacy_client is not None - + self.use_zguard_legacy_client: bool = zguard_legacy_client is not None + # Set timeout for all HTTP requests request_timeout: Optional[int] = http_config.get("requestTimeout", None) self._timeout: Optional[int] = request_timeout if request_timeout and request_timeout > 0 else None @@ -282,6 +286,28 @@ def send_request(self, request: Dict[str, Any]) -> Tuple[Optional[requests.Respo } ) + elif self.use_zguard_legacy_client: + parsed_url = urlparse(request["url"]) + path = parsed_url.path + logger.debug(f"Sending request via AIGuard legacy client. Path: {path}") + + response = self.zguard_legacy_client.send( + method=request["method"], + path=path, + params=request["params"], + json=request.get("json") or request.get("data"), + ) + + logger.debug(f"AIGuard Legacy Client Response: {response}") + + if response is None: + error_msg = f"AIGuard Legacy client returned None for path: {path}" + logger.error(error_msg) + return (None, ValueError(error_msg)) + + # For AIGuard, the response is just the requests.Response object + # No need to update params as authentication is already handled + else: # Standard session if self._session: diff --git a/zscaler/request_executor.py b/zscaler/request_executor.py index c1a1b891..1127d490 100644 --- a/zscaler/request_executor.py +++ b/zscaler/request_executor.py @@ -19,6 +19,7 @@ from zscaler.zpa.legacy import LegacyZPAClientHelper from zscaler.zia.legacy import LegacyZIAClientHelper from zscaler.zwa.legacy import LegacyZWAClientHelper +from zscaler.zaiguard.legacy import LegacyZGuardClientHelper logger = logging.getLogger('zscaler-sdk-python') @@ -41,6 +42,7 @@ def __init__( zpa_legacy_client: LegacyZPAClientHelper = None, zia_legacy_client: LegacyZIAClientHelper = None, zwa_legacy_client: LegacyZWAClientHelper = None, + zguard_legacy_client: LegacyZGuardClientHelper = None, ): """ Constructor for Request Executor object for Zscaler SDK Client. @@ -56,6 +58,7 @@ def __init__( self.zpa_legacy_client = zpa_legacy_client self.zia_legacy_client = zia_legacy_client self.zwa_legacy_client = zwa_legacy_client + self.zguard_legacy_client = zguard_legacy_client self.use_legacy_client = ( zpa_legacy_client is not None @@ -64,6 +67,7 @@ def __init__( or zcc_legacy_client is not None or ztw_legacy_client is not None or zdx_legacy_client is not None + or zguard_legacy_client is not None ) # Validate and set request timeout @@ -123,6 +127,7 @@ def __init__( zpa_legacy_client=self.zpa_legacy_client, zia_legacy_client=self.zia_legacy_client, zwa_legacy_client=self.zwa_legacy_client, + zguard_legacy_client=self.zguard_legacy_client, ) exceptions.raise_exception = self._config["client"].get("raiseException", False) @@ -178,6 +183,8 @@ def get_service_type(self, url): return "zcc" elif "/zdx" in url: return "zdx" + # elif "/bi" in url: + # return "bi" elif "/zwa" in url: return "zwa" elif "/zpa" in url or "/mgmtconfig" in url: @@ -190,6 +197,8 @@ def get_service_type(self, url): return "zeasm" elif "/zins" in url: return "zins" + elif "/v1/detection" in url or (self.zguard_legacy_client and "/v1/" in url): + return "zguard" if self.use_legacy_client: url = self.remove_oneapi_endpoint_prefix(url) # Recheck for service type after removing the prefix @@ -252,6 +261,8 @@ def create_request( base_url = self.zdx_legacy_client.get_base_url(endpoint) elif service_type == "zwa": base_url = self.zwa_legacy_client.get_base_url(endpoint) + elif service_type == "zguard": + base_url = self.zguard_legacy_client.get_base_url(endpoint) else: base_url = self.get_base_url(endpoint) else: diff --git a/zscaler/zaiguard/__init__.py b/zscaler/zaiguard/__init__.py new file mode 100644 index 00000000..1791cae7 --- /dev/null +++ b/zscaler/zaiguard/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" diff --git a/zscaler/zaiguard/legacy.py b/zscaler/zaiguard/legacy.py new file mode 100644 index 00000000..1423e892 --- /dev/null +++ b/zscaler/zaiguard/legacy.py @@ -0,0 +1,460 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +from __future__ import annotations + +import logging +import os +import time +import threading +from typing import Optional, Dict, Any, Type, List, TYPE_CHECKING + +import requests +from zscaler import __version__ +from zscaler.cache.cache import Cache +from zscaler.cache.no_op_cache import NoOpCache +from zscaler.cache.zscaler_cache import ZscalerCache +from zscaler.user_agent import UserAgent +from zscaler.logger import setup_logging, dump_request, dump_response + +setup_logging(logger_name="zscaler-sdk-python") +logger = logging.getLogger("zscaler-sdk-python") + +# Import all AIGuard API classes for type hints only (to avoid circular imports) +if TYPE_CHECKING: + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + +class LegacyZGuardClientHelper: + """ + A Controller to access Endpoints in the Zscaler AI Guard API. + + The AIGuard object stores the API key and simplifies access to the AI Guard platform. + + Attributes: + api_key (str): The AIGuard API key (Bearer token). + cloud (str): The Zscaler cloud for your tenancy. Default is 'us1'. + timeout (int): Request timeout in seconds. Default is 240. + + """ + + _vendor = "Zscaler" + _product = "Zscaler AI Guard" + _build = __version__ + _env_base = "AIGUARD" + url = "https://api.us1.zseclipse.net" + env_cloud = "us1" + + def __init__( + self, + cloud: str = "us1", + timeout: int = 240, + cache: Optional[Cache] = None, + fail_safe: bool = False, + request_executor_impl: Optional[Type] = None, + auto_retry_on_rate_limit: bool = True, + max_rate_limit_retries: int = 3, + **kw: Any + ) -> None: + self.api_key = kw.get("api_key", os.getenv(f"{self._env_base}_API_KEY")) + + # Set cloud environment (default to us1) + self.env_cloud = cloud or kw.get("cloud") or os.getenv(f"{self._env_base}_CLOUD", "us1") + + # URL construction + self.url = ( + kw.get("override_url") + or os.getenv(f"{self._env_base}_OVERRIDE_URL") + or f"https://api.{self.env_cloud}.zseclipse.net" + ) + + self.timeout = timeout + self.fail_safe = fail_safe + self.conv_box = True + + # Initialize cache + if cache: + self.cache = cache + else: + self.cache = NoOpCache() + + # Setup logging + setup_logging(logger_name="zscaler-sdk-python") + self.logger = logging.getLogger("zscaler-sdk-python") + + # Validate API key + if not self.api_key: + raise ValueError( + f"API key is required. Please set 'api_key' or '{self._env_base}_API_KEY' environment variable." + ) + + self.logger.info("Initializing %s client", self._product) + self.logger.debug("API key configured") + + # Setup user agent + ua = UserAgent() + self.user_agent = ua.get_user_agent_string() + + # Setup headers + self.headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "User-Agent": self.user_agent, + } + + # Initialize rate limiting (AIGuard uses response-based throttling) + self.auto_retry_on_rate_limit = auto_retry_on_rate_limit + self.max_rate_limit_retries = max_rate_limit_retries + self._rate_limit_lock = threading.Lock() + self._request_count_wait_until = 0 # Timestamp when "rq" limit resets + self._content_size_wait_until = 0 # Timestamp when "cs" limit resets + + # Rate limit statistics + self._total_throttles = 0 + self._rq_throttles = 0 + self._cs_throttles = 0 + + # Initialize request executor + if request_executor_impl: + self.request_executor = request_executor_impl(self) + else: + from zscaler.request_executor import RequestExecutor + + # Create a minimal config for the request executor + config = { + "client": { + "requestTimeout": timeout, + "rateLimit": {"maxRetries": 2}, + "cache": {"enabled": False}, + "service": "zguard", + "cloud": self.env_cloud, + } + } + + self.request_executor = RequestExecutor( + config=config, + cache=self.cache, + http_client=None, + zguard_legacy_client=self, + ) + + self._session = None + + @property + def policy_detection(self) -> "PolicyDetectionAPI": + """ + The interface object for the AIGuard Policy Detection API. + + Returns: + PolicyDetectionAPI: Interface for policy detection operations + """ + from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + return PolicyDetectionAPI(self.request_executor) + + def _should_wait_before_request(self) -> Optional[float]: + """ + Check if we should wait before making a new request based on previous rate limits. + + Returns: + Optional[float]: Seconds to wait, or None if no wait needed + """ + with self._rate_limit_lock: + now = time.time() + + # Check request count limit + rq_wait = max(0, self._request_count_wait_until - now) + + # Check content size limit + cs_wait = max(0, self._content_size_wait_until - now) + + max_wait = max(rq_wait, cs_wait) + + if max_wait > 0: + logger.debug(f"Pre-request rate limit check: waiting {max_wait:.1f}s") + return max_wait + + return None + + def _wait_if_rate_limited(self) -> bool: + """ + Wait if needed based on previous rate limits (proactive). + + Returns: + bool: True if wait was applied, False otherwise + """ + wait_time = self._should_wait_before_request() + if wait_time and wait_time > 0: + logger.info(f"AIGuard proactive rate limit wait: {wait_time:.1f}s") + time.sleep(wait_time) + return True + return False + + def _handle_throttling_details(self, throttling_details: List[Any]) -> bool: + """ + Handle throttling details from API response. + + Args: + throttling_details: List of RateLimitThrottlingDetail from API response + + Returns: + bool: True if rate limiting was applied, False otherwise + """ + if not throttling_details or len(throttling_details) == 0: + return False + + with self._rate_limit_lock: + now = time.time() + max_wait_seconds = 0 + throttle_info = [] + + for throttle in throttling_details: + self._total_throttles += 1 + + # Calculate wait time + retry_after_millis = getattr(throttle, 'retry_after_millis', None) + wait_seconds = (retry_after_millis or 0) / 1000.0 + max_wait_seconds = max(max_wait_seconds, wait_seconds) + + metric = getattr(throttle, 'metric', None) + rlc_id = getattr(throttle, 'rlc_id', None) + + # Track by metric type + if metric == "rq": + self._rq_throttles += 1 + self._request_count_wait_until = now + wait_seconds + throttle_info.append(f"Request rate limit (wait {wait_seconds:.1f}s)") + + elif metric == "cs": + self._cs_throttles += 1 + self._content_size_wait_until = now + wait_seconds + throttle_info.append(f"Content size limit (wait {wait_seconds:.1f}s)") + + else: + throttle_info.append(f"Unknown metric '{metric}' (wait {wait_seconds:.1f}s)") + + # Log details + logger.warning( + f"AIGuard rate limit triggered: " + f"rlcId={rlc_id}, metric={metric}, " + f"retryAfter={retry_after_millis}ms" + ) + + # Apply rate limiting if auto_retry is enabled + if self.auto_retry_on_rate_limit and max_wait_seconds > 0: + logger.info( + f"AIGuard rate limit: {', '.join(throttle_info)}. " + f"Sleeping for {max_wait_seconds:.1f} seconds..." + ) + time.sleep(max_wait_seconds) + return True + + elif max_wait_seconds > 0: + logger.warning( + f"AIGuard rate limit detected but auto_retry disabled: " + f"{', '.join(throttle_info)}. " + f"Application should wait {max_wait_seconds:.1f} seconds before next request." + ) + return True + + return False + + def get_rate_limit_stats(self) -> Dict[str, Any]: + """ + Get rate limiting statistics. + + Returns: + dict: Statistics about rate limiting including: + - total_throttles: Total number of times throttled + - request_count_throttles: Number of request count throttles + - content_size_throttles: Number of content size throttles + - currently_limited: Whether currently rate limited + """ + with self._rate_limit_lock: + return { + "total_throttles": self._total_throttles, + "request_count_throttles": self._rq_throttles, + "content_size_throttles": self._cs_throttles, + "currently_limited": self._should_wait_before_request() is not None, + } + + def reset_rate_limit_stats(self) -> None: + """Reset rate limiting statistics.""" + with self._rate_limit_lock: + self._total_throttles = 0 + self._rq_throttles = 0 + self._cs_throttles = 0 + logger.debug("AIGuard rate limit statistics reset") + + def clear_rate_limits(self) -> None: + """ + Clear all active rate limits (use with caution). + + This will allow requests to proceed even if the API indicated you should wait. + """ + with self._rate_limit_lock: + self._request_count_wait_until = 0 + self._content_size_wait_until = 0 + logger.info("AIGuard rate limits cleared") + + def get_base_url(self, endpoint: str = "") -> str: + """ + Returns the base URL for the AIGuard API. + + Args: + endpoint: The API endpoint (not used, kept for compatibility) + + Returns: + str: The base URL + """ + return self.url + + def get_jsessionid(self, request: requests.PreparedRequest) -> Optional[str]: + """ + Returns None for AIGuard as it uses Bearer token authentication. + This method exists for compatibility with the SDK framework. + + Args: + request: The prepared request object + + Returns: + None + """ + return None + + def set_auth_header(self, request: requests.PreparedRequest) -> requests.PreparedRequest: + """ + Sets the Authorization header with the Bearer token for AIGuard API requests. + + Args: + request: The prepared request object + + Returns: + requests.PreparedRequest: The request with Authorization header set + """ + if self.api_key: + request.headers["Authorization"] = f"Bearer {self.api_key}" + + # Set Content-Type for JSON requests + if request.body and not request.headers.get("Content-Type"): + request.headers["Content-Type"] = "application/json" + + # Set User-Agent + request.headers["User-Agent"] = self.user_agent + + return request + + def send( + self, + method: str, + path: str, + json: Optional[Dict[str, Any]] = None, + params: Optional[Dict[str, Any]] = None, + **kwargs: Any, + ) -> requests.Response: + """ + Send an HTTP request to the AIGuard API with automatic rate limiting. + + Args: + method: HTTP method (GET, POST, PUT, DELETE, etc.) + path: API endpoint path + json: JSON payload for the request body + params: Query parameters + **kwargs: Additional arguments to pass to requests + + Returns: + requests.Response: The HTTP response object + """ + # Proactive rate limiting - wait if we know we should from previous responses + self._wait_if_rate_limited() + + url = f"{self.url}{path}" + + # Prepare request + req = requests.Request(method=method.upper(), url=url, json=json, params=params, **kwargs) + prepared = req.prepare() + + # Set authentication and headers + prepared = self.set_auth_header(prepared) + + # Log request (with proper parameters for dump_request) + import uuid + import time + request_uuid = str(uuid.uuid4()) + start_time = time.time() + + dump_request( + self.logger, + url=url, + method=method.upper(), + json=json, + params=params or {}, + headers=dict(prepared.headers), + request_uuid=request_uuid + ) + + # Create session if not exists + if not hasattr(self, "_session") or self._session is None: + self._session = requests.Session() + + # Send request + response = self._session.send(prepared, timeout=self.timeout) + + # Log response (with proper parameters) + dump_response( + self.logger, + url=url, + method=method.upper(), + resp=response, + params=params or {}, + request_uuid=request_uuid, + start_time=start_time, + from_cache=False + ) + + return response + + """ + Misc + """ + + def set_custom_headers(self, headers: Dict[str, str]) -> None: + """Set custom headers for requests.""" + self.request_executor.set_custom_headers(headers) + + def clear_custom_headers(self) -> None: + """Clear custom headers.""" + self.request_executor.clear_custom_headers() + + def get_custom_headers(self) -> Dict[str, str]: + """Get custom headers.""" + return self.request_executor.get_custom_headers() + + def get_default_headers(self) -> Dict[str, str]: + """Get default headers.""" + return self.request_executor.get_default_headers() + + def __enter__(self): + """Context manager entry.""" + if not hasattr(self, "_session") or self._session is None: + self._session = requests.Session() + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Context manager exit.""" + if hasattr(self, "_session") and self._session is not None: + self._session.close() + self._session = None diff --git a/zscaler/zaiguard/models/__init__.py b/zscaler/zaiguard/models/__init__.py new file mode 100644 index 00000000..1791cae7 --- /dev/null +++ b/zscaler/zaiguard/models/__init__.py @@ -0,0 +1,15 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" diff --git a/zscaler/zaiguard/models/policy_detection.py b/zscaler/zaiguard/models/policy_detection.py new file mode 100644 index 00000000..8104f6d7 --- /dev/null +++ b/zscaler/zaiguard/models/policy_detection.py @@ -0,0 +1,395 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +from typing import Dict, List, Optional, Any, Union +from zscaler.oneapi_object import ZscalerObject +from zscaler.oneapi_collection import ZscalerCollection + + +class ContentHash(ZscalerObject): + """ + A class representing the ContentHash. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the ContentHash model based on API response. + + Args: + config (dict): A dictionary representing the response. + """ + super().__init__(config) + if config: + self.hash_type = config["hashType"] if "hashType" in config else None + self.hash_value = config["hashValue"] if "hashValue" in config else None + else: + self.hash_type = None + self.hash_value = None + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + current_obj_format = { + "hashType": self.hash_type, + "hashValue": self.hash_value, + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class DetectorResponse(ZscalerObject): + """ + A class representing the DetectorResponse. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the DetectorResponse model based on API response. + + Args: + config (dict): A dictionary representing the response. + """ + super().__init__(config) + if config: + self.status_code = config["statusCode"] if "statusCode" in config else None + self.error_msg = config["errorMsg"] if "errorMsg" in config else None + self.triggered = config["triggered"] if "triggered" in config else None + self.action = config["action"] if "action" in config else None + self.latency = config["latency"] if "latency" in config else None + self.device_type = config["deviceType"] if "deviceType" in config else None + self.details = config["details"] if "details" in config else None + self.severity = config["severity"] if "severity" in config else None + + if "contentHash" in config: + if isinstance(config["contentHash"], ContentHash): + self.content_hash = config["contentHash"] + elif config["contentHash"] is not None: + self.content_hash = ContentHash(config["contentHash"]) + else: + self.content_hash = None + else: + self.content_hash = None + else: + self.status_code = None + self.error_msg = None + self.triggered = None + self.action = None + self.latency = None + self.device_type = None + self.details = None + self.content_hash = None + self.severity = None + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + current_obj_format = { + "statusCode": self.status_code, + "errorMsg": self.error_msg, + "triggered": self.triggered, + "action": self.action, + "latency": self.latency, + "deviceType": self.device_type, + "details": self.details, + "contentHash": self.content_hash.request_format() if self.content_hash else None, + "severity": self.severity, + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class RateLimitThrottlingDetail(ZscalerObject): + """ + A class representing the RateLimitThrottlingDetail. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the RateLimitThrottlingDetail model based on API response. + + Args: + config (dict): A dictionary representing the response. + """ + super().__init__(config) + if config: + self.rlc_id = config["rlcId"] if "rlcId" in config else None + self.metric = config["metric"] if "metric" in config else None + self.retry_after_millis = config["retryAfterMillis"] if "retryAfterMillis" in config else None + else: + self.rlc_id = None + self.metric = None + self.retry_after_millis = None + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + current_obj_format = { + "rlcId": self.rlc_id, + "metric": self.metric, + "retryAfterMillis": self.retry_after_millis, + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class ExecuteDetectionsPolicyRequest(ZscalerObject): + """ + A class representing the ExecuteDetectionsPolicyRequest. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the ExecuteDetectionsPolicyRequest model based on API response. + + Args: + config (dict): A dictionary representing the request. + """ + super().__init__(config) + if config: + self.transaction_id = config["transactionId"] if "transactionId" in config else None + self.content = config["content"] if "content" in config else None + self.direction = config["direction"] if "direction" in config else None + self.policy_id = config["policyId"] if "policyId" in config else None + else: + self.transaction_id = None + self.content = None + self.direction = None + self.policy_id = None + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + current_obj_format = { + "transactionId": self.transaction_id, + "content": self.content, + "direction": self.direction, + "policyId": self.policy_id, + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class ExecuteDetectionsPolicyResponse(ZscalerObject): + """ + A class representing the ExecuteDetectionsPolicyResponse. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the ExecuteDetectionsPolicyResponse model based on API response. + + Args: + config (dict): A dictionary representing the response. + """ + super().__init__(config) + if config: + self.transaction_id = config["transactionId"] if "transactionId" in config else None + self.status_code = config["statusCode"] if "statusCode" in config else None + self.error_msg = config["errorMsg"] if "errorMsg" in config else None + self.detector_error_count = config["detectorErrorCount"] if "detectorErrorCount" in config else None + self.action = config["action"] if "action" in config else None + self.severity = config["severity"] if "severity" in config else None + self.direction = config["direction"] if "direction" in config else None + + # Handle detectorResponses as a dictionary of DetectorResponse objects + self.detector_responses = {} + if "detectorResponses" in config and config["detectorResponses"]: + for key, value in config["detectorResponses"].items(): + if isinstance(value, DetectorResponse): + self.detector_responses[key] = value + elif value is not None: + self.detector_responses[key] = DetectorResponse(value) + + # Handle throttlingDetails as a list + self.throttling_details = ZscalerCollection.form_list( + config["throttlingDetails"] if "throttlingDetails" in config else [], + RateLimitThrottlingDetail + ) + else: + self.transaction_id = None + self.status_code = None + self.error_msg = None + self.detector_error_count = None + self.action = None + self.severity = None + self.direction = None + self.detector_responses = {} + self.throttling_details = [] + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + + # Convert detector_responses dict + detector_responses_dict = {} + if self.detector_responses: + for key, value in self.detector_responses.items(): + if isinstance(value, DetectorResponse): + detector_responses_dict[key] = value.request_format() + else: + detector_responses_dict[key] = value + + current_obj_format = { + "transactionId": self.transaction_id, + "statusCode": self.status_code, + "errorMsg": self.error_msg, + "detectorErrorCount": self.detector_error_count, + "action": self.action, + "severity": self.severity, + "direction": self.direction, + "detectorResponses": detector_responses_dict, + "throttlingDetails": [ + item.request_format() if isinstance(item, RateLimitThrottlingDetail) else item + for item in self.throttling_details + ] if self.throttling_details else [], + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class DasResolveAndExecuteDetectionsPolicyRequest(ZscalerObject): + """ + A class representing the DasResolveAndExecuteDetectionsPolicyRequest. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the DasResolveAndExecuteDetectionsPolicyRequest model based on API response. + + Args: + config (dict): A dictionary representing the request. + """ + super().__init__(config) + if config: + self.transaction_id = config["transactionId"] if "transactionId" in config else None + self.content = config["content"] if "content" in config else None + self.direction = config["direction"] if "direction" in config else None + else: + self.transaction_id = None + self.content = None + self.direction = None + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + current_obj_format = { + "transactionId": self.transaction_id, + "content": self.content, + "direction": self.direction, + } + parent_req_format.update(current_obj_format) + return parent_req_format + + +class ResolveAndExecuteDetectionsPolicyResponse(ZscalerObject): + """ + A class representing the ResolveAndExecuteDetectionsPolicyResponse. + """ + + def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: + """ + Initialize the ResolveAndExecuteDetectionsPolicyResponse model based on API response. + + Args: + config (dict): A dictionary representing the response. + """ + super().__init__(config) + if config: + self.transaction_id = config["transactionId"] if "transactionId" in config else None + self.status_code = config["statusCode"] if "statusCode" in config else None + self.error_msg = config["errorMsg"] if "errorMsg" in config else None + self.detector_error_count = config["detectorErrorCount"] if "detectorErrorCount" in config else None + self.action = config["action"] if "action" in config else None + self.severity = config["severity"] if "severity" in config else None + self.direction = config["direction"] if "direction" in config else None + self.policy_id = config["policyId"] if "policyId" in config else None + self.policy_name = config["policyName"] if "policyName" in config else None + self.policy_version = config["policyVersion"] if "policyVersion" in config else None + + # Handle detectorResponses as a dictionary of DetectorResponse objects + self.detector_responses = {} + if "detectorResponses" in config and config["detectorResponses"]: + for key, value in config["detectorResponses"].items(): + if isinstance(value, DetectorResponse): + self.detector_responses[key] = value + elif value is not None: + self.detector_responses[key] = DetectorResponse(value) + + # Handle throttlingDetails as a list + self.throttling_details = ZscalerCollection.form_list( + config["throttlingDetails"] if "throttlingDetails" in config else [], + RateLimitThrottlingDetail + ) + else: + self.transaction_id = None + self.status_code = None + self.error_msg = None + self.detector_error_count = None + self.action = None + self.severity = None + self.direction = None + self.policy_id = None + self.policy_name = None + self.policy_version = None + self.detector_responses = {} + self.throttling_details = [] + + def request_format(self) -> Dict[str, Any]: + """ + Returns the object as a dictionary in the format expected for API requests. + """ + parent_req_format = super().request_format() + + # Convert detector_responses dict + detector_responses_dict = {} + if self.detector_responses: + for key, value in self.detector_responses.items(): + if isinstance(value, DetectorResponse): + detector_responses_dict[key] = value.request_format() + else: + detector_responses_dict[key] = value + + current_obj_format = { + "transactionId": self.transaction_id, + "statusCode": self.status_code, + "errorMsg": self.error_msg, + "detectorErrorCount": self.detector_error_count, + "action": self.action, + "severity": self.severity, + "direction": self.direction, + "policyId": self.policy_id, + "policyName": self.policy_name, + "policyVersion": self.policy_version, + "detectorResponses": detector_responses_dict, + "throttlingDetails": [ + item.request_format() if isinstance(item, RateLimitThrottlingDetail) else item + for item in self.throttling_details + ] if self.throttling_details else [], + } + parent_req_format.update(current_obj_format) + return parent_req_format diff --git a/zscaler/zaiguard/policy_detection.py b/zscaler/zaiguard/policy_detection.py new file mode 100644 index 00000000..19fb4120 --- /dev/null +++ b/zscaler/zaiguard/policy_detection.py @@ -0,0 +1,197 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +from typing import Dict, List, Optional, Any, Union +from zscaler.api_client import APIClient +from zscaler.request_executor import RequestExecutor +from zscaler.zaiguard.models.policy_detection import ( + ExecuteDetectionsPolicyRequest, + ExecuteDetectionsPolicyResponse, + ResolveAndExecuteDetectionsPolicyResponse, +) +from zscaler.utils import format_url +from zscaler.types import APIResult + + +class PolicyDetectionAPI(APIClient): + """ + API client for AIGuard Policy Detection operations. + """ + + def __init__(self, request_executor: "RequestExecutor") -> None: + super().__init__() + self._request_executor: RequestExecutor = request_executor + self._base_endpoint = "/v1" + + def execute_policy( + self, + content: str, + direction: str, + policy_id: Optional[int] = None, + transaction_id: Optional[str] = None, + ) -> APIResult[ExecuteDetectionsPolicyResponse]: + """ + Executes a policy detection with a specific policy ID. + + Args: + content (str): The content to scan + direction (str): The direction of the content ('IN' or 'OUT') + policy_id (int, optional): The policy ID to execute against + transaction_id (str, optional): Optional transaction ID for tracking + + Returns: + APIResult[ExecuteDetectionsPolicyResponse]: Tuple of (result, response, error) + + Examples: + Minimal payload (content + direction): + >>> result, resp, err = client.zguard.policy_detection.execute_policy( + ... content="User prompt or AI response to scan", + ... direction="IN" + ... ) + + With optional policy_id and transaction_id: + >>> result, resp, err = client.zguard.policy_detection.execute_policy( + ... content="Content to scan", + ... direction="OUT", + ... policy_id=12345, + ... transaction_id="txn-abc-123" + ... ) + """ + http_method = "POST" + api_url = format_url( + f""" + {self._base_endpoint} + /detection/execute-policy + """ + ) + + body = { + "content": content, + "direction": direction, + } + + if policy_id is not None: + body["policyId"] = policy_id + + if transaction_id is not None: + body["transactionId"] = transaction_id + + request, error = self._request_executor.create_request( + method=http_method, + endpoint=api_url, + body=body, + ) + + if error: + return (None, None, error) + + response, error = self._request_executor.execute(request, ExecuteDetectionsPolicyResponse) + if error: + return (None, response, error) + + try: + result = ExecuteDetectionsPolicyResponse(self.form_response_body(response.get_body())) + + # Handle rate limiting from response body (AIGuard-specific) + if result.throttling_details and len(result.throttling_details) > 0: + # Check if we're using a legacy client with rate limiting + if hasattr(self._request_executor, 'zguard_legacy_client'): + legacy_client = self._request_executor.zguard_legacy_client + if legacy_client and hasattr(legacy_client, '_handle_throttling_details'): + # Let the client handle throttling + legacy_client._handle_throttling_details(result.throttling_details) + + except Exception as error: + return (None, response, error) + + return (result, response, None) + + def resolve_and_execute_policy( + self, + content: str, + direction: str, + transaction_id: Optional[str] = None, + ) -> APIResult[ResolveAndExecuteDetectionsPolicyResponse]: + """ + Resolves and executes a policy detection (automatic policy selection). + + Args: + content (str): The content to scan + direction (str): The direction of the content ('IN' or 'OUT') + transaction_id (str, optional): Optional transaction ID for tracking + + Returns: + APIResult[ResolveAndExecuteDetectionsPolicyResponse]: Tuple of (result, response, error) + + Examples: + Minimal payload (content + direction): + >>> result, resp, err = client.zguard.policy_detection.resolve_and_execute_policy( + ... content="User prompt or AI response to scan", + ... direction="IN" + ... ) + + With optional transaction_id: + >>> result, resp, err = client.zguard.policy_detection.resolve_and_execute_policy( + ... content="Content to scan", + ... direction="OUT", + ... transaction_id="txn-abc-123" + ... ) + """ + http_method = "POST" + api_url = format_url( + f""" + {self._base_endpoint} + /detection/resolve-and-execute-policy + """ + ) + + body = { + "content": content, + "direction": direction, + } + + if transaction_id is not None: + body["transactionId"] = transaction_id + + request, error = self._request_executor.create_request( + method=http_method, + endpoint=api_url, + body=body, + ) + + if error: + return (None, None, error) + + response, error = self._request_executor.execute(request, ResolveAndExecuteDetectionsPolicyResponse) + if error: + return (None, response, error) + + try: + result = ResolveAndExecuteDetectionsPolicyResponse(self.form_response_body(response.get_body())) + + # Handle rate limiting from response body (AIGuard-specific) + if result.throttling_details and len(result.throttling_details) > 0: + # Check if we're using a legacy client with rate limiting + if hasattr(self._request_executor, 'zguard_legacy_client'): + legacy_client = self._request_executor.zguard_legacy_client + if legacy_client and hasattr(legacy_client, '_handle_throttling_details'): + # Let the client handle throttling + legacy_client._handle_throttling_details(result.throttling_details) + + except Exception as error: + return (None, response, error) + + return (result, response, None) diff --git a/zscaler/zaiguard/zaiguard_service.py b/zscaler/zaiguard/zaiguard_service.py new file mode 100644 index 00000000..8f701981 --- /dev/null +++ b/zscaler/zaiguard/zaiguard_service.py @@ -0,0 +1,33 @@ +""" +Copyright (c) 2023, Zscaler Inc. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +""" + +from zscaler.request_executor import RequestExecutor +from zscaler.zaiguard.policy_detection import PolicyDetectionAPI + + +class ZGuardService: + """ZGuard Service client, exposing AIGuard APIs""" + + def __init__(self, request_executor: RequestExecutor) -> None: + self._request_executor = request_executor + + @property + def policy_detection(self) -> PolicyDetectionAPI: + """ + The interface object for the :ref:`AIGuard Policy Detection interface `. + + """ + return PolicyDetectionAPI(self._request_executor) diff --git a/zscaler/zia/models/cloud_firewall_dns_rules.py b/zscaler/zia/models/cloud_firewall_dns_rules.py index 6d419976..b015431c 100644 --- a/zscaler/zia/models/cloud_firewall_dns_rules.py +++ b/zscaler/zia/models/cloud_firewall_dns_rules.py @@ -54,6 +54,9 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.order = config["order"] if "order" in config else None self.rank = config["rank"] if "rank" in config else None self.description = config["description"] if "description" in config else None + self.is_web_eun_enabled = config["isWebEunEnabled"] if "isWebEunEnabled" in config else None + self.default_dns_rule_name_used = config["defaultDnsRuleNameUsed"] if "defaultDnsRuleNameUsed" in config else None + self.locations = ZscalerCollection.form_list( config["locations"] if "locations" in config else [], location_management.LocationManagement ) @@ -206,6 +209,8 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.block_response_code = None self.predefined = False self.default_rule = False + self.is_web_eun_enabled = False + self.default_dns_rule_name_used = False def request_format(self) -> Dict[str, Any]: """ @@ -254,6 +259,8 @@ def request_format(self) -> Dict[str, Any]: "blockResponseCode": self.block_response_code, "predefined": self.predefined, "defaultRule": self.default_rule, + "isWebEunEnabled": self.is_web_eun_enabled, + "defaultDnsRuleNameUsed": self.default_dns_rule_name_used, } parent_req_format.update(current_obj_format) return parent_req_format diff --git a/zscaler/zia/models/cloud_firewall_ips_rules.py b/zscaler/zia/models/cloud_firewall_ips_rules.py index 9ada8b4b..7ad94ae9 100644 --- a/zscaler/zia/models/cloud_firewall_ips_rules.py +++ b/zscaler/zia/models/cloud_firewall_ips_rules.py @@ -56,6 +56,8 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.state = config["state"] if "state" in config else None self.description = config["description"] if "description" in config else None self.last_modified_time = config["lastModifiedTime"] if "lastModifiedTime" in config else None + self.is_eun_enabled = config["isEunEnabled"] if "isEunEnabled" in config else None + self.eun_template_id = config["eunTemplateId"] if "eunTemplateId" in config else None self.locations = ZscalerCollection.form_list( config["locations"] if "locations" in config else [], location_management.LocationManagement @@ -171,6 +173,8 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.enable_full_logging = False self.predefined = False self.default_rule = False + self.is_eun_enabled = False + self.eun_template_id = None def request_format(self) -> Dict[str, Any]: """ @@ -215,6 +219,8 @@ def request_format(self) -> Dict[str, Any]: "enableFullLogging": self.enable_full_logging, "predefined": self.predefined, "defaultRule": self.default_rule, + "isEunEnabled": self.is_eun_enabled, + "eunTemplateId": self.eun_template_id, } parent_req_format.update(current_obj_format) return parent_req_format diff --git a/zscaler/zia/models/dlp_web_rules.py b/zscaler/zia/models/dlp_web_rules.py index c6b0704a..a2c360d8 100644 --- a/zscaler/zia/models/dlp_web_rules.py +++ b/zscaler/zia/models/dlp_web_rules.py @@ -49,6 +49,7 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.action = config["action"] if "action" in config else None self.state = config["state"] if "state" in config else None self.match_only = config["matchOnly"] if "matchOnly" in config else False + self.eun_template_id = config["eunTemplateId"] if "eunTemplateId" in config else None self.without_content_inspection = ( config["withoutContentInspection"] if "withoutContentInspection" in config else False ) @@ -183,6 +184,7 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.external_auditor_email = None self.dlp_content_locations_scopes = [] self.dlp_engines = [] + self.eun_template_id = None def request_format(self) -> Dict[str, Any]: """ @@ -238,6 +240,7 @@ def request_format(self) -> Dict[str, Any]: "externalAuditorEmail": self.external_auditor_email, "dlpContentLocationsScopes": self.dlp_content_locations_scopes, "dlpEngines": [engine.request_format() for engine in (self.dlp_engines or [])], + "eunTemplateId": self.eun_template_id, } parent_req_format.update(current_obj_format) return parent_req_format diff --git a/zscaler/zia/models/urlcategory.py b/zscaler/zia/models/urlcategory.py index 99a681b3..ec49dd51 100644 --- a/zscaler/zia/models/urlcategory.py +++ b/zscaler/zia/models/urlcategory.py @@ -40,6 +40,10 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.urls = ZscalerCollection.form_list(config["urls"] if "urls" in config else [], str) + self.regex_patterns_retaining_parent_category = ZscalerCollection.form_list(config["regexPatternsRetainingParentCategory"] if "regexPatternsRetainingParentCategory" in config else [], str) + + self.regex_patterns = ZscalerCollection.form_list(config["regexPatterns"] if "regexPatterns" in config else [], str) + self.db_categorized_urls = ZscalerCollection.form_list( config["dbCategorizedUrls"] if "dbCategorizedUrls" in config else [], str ) @@ -68,7 +72,8 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.editable = config["editable"] if "editable" in config else False self.description = config["description"] if "description" in config else None self.type = config["type"] if "type" in config else None - + self.url_type = config["urlType"] if "urlType" in config else None + # Handle nested dictionary for urlKeywordCounts # Handle nested dictionary for urlKeywordCounts self.url_keyword_counts = ( @@ -127,6 +132,9 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.urls_retaining_parent_category_count = 0 self.custom_ip_ranges_count = 0 self.ip_ranges_retaining_parent_category_count = 0 + self.regex_patterns_retaining_parent_category = [] + self.url_type = None + self.regex_patterns = [] def request_format(self) -> Dict[str, Any]: parent_req_format = super().request_format() @@ -150,6 +158,9 @@ def request_format(self) -> Dict[str, Any]: "urlsRetainingParentCategoryCount": self.urls_retaining_parent_category_count, "customIpRangesCount": self.custom_ip_ranges_count, "ipRangesRetainingParentCategoryCount": self.ip_ranges_retaining_parent_category_count, + "regexPatternsRetainingParentCategory": self.regex_patterns_retaining_parent_category, + "urlType": self.url_type, + "regexPatterns": self.regex_patterns, } parent_req_format.update(current_obj_format) return parent_req_format diff --git a/zscaler/zpa/models/application_segment.py b/zscaler/zpa/models/application_segment.py index b9d99312..92f3fd8b 100644 --- a/zscaler/zpa/models/application_segment.py +++ b/zscaler/zpa/models/application_segment.py @@ -50,6 +50,8 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.health_reporting = config["healthReporting"] if "healthReporting" in config else None self.use_in_dr_mode = config["useInDrMode"] if "useInDrMode" in config else None self.tcp_keep_alive = config["tcpKeepAlive"] if "tcpKeepAlive" in config else None + self.policy_style = config["policyStyle"] if "policyStyle" in config else None + self.passive_health_enabled = config["passiveHealthEnabled"] \ if "passiveHealthEnabled" in config else None self.select_connector_close_to_app = ( @@ -198,6 +200,7 @@ def __init__(self, config: Optional[Dict[str, Any]] = None) -> None: self.shared_microtenant_details = None self.application_group = None self.zpn_er_id = None + self.policy_style = None def request_format(self) -> Dict[str, Any]: """ @@ -250,7 +253,8 @@ def request_format(self) -> Dict[str, Any]: "zscalerManaged": self.zscaler_managed, "sharedMicrotenantDetails": self.shared_microtenant_details, "applicationGroup": self.application_group, - "zpnErId": self.zpn_er_id + "zpnErId": self.zpn_er_id, + "policyStyle": self.policy_style, } diff --git a/zscaler/ztw/forwarding_rules.py b/zscaler/ztw/forwarding_rules.py index 8e0aeb66..9dfd3c8f 100644 --- a/zscaler/ztw/forwarding_rules.py +++ b/zscaler/ztw/forwarding_rules.py @@ -375,3 +375,39 @@ def update_rule(self, rule_id: str, **kwargs) -> APIResult[dict]: except Exception as error: return (None, response, error) return (result, response, None) + + def delete_rule(self, rule_id: int) -> APIResult[dict]: + """ + Deletes the specified forwarding rule. + + Args: + rule_id (str): The unique ID of the forwarding rule. + + Returns: + :obj:`int`: The status code of the operation. + + Examples: + >>> _, response, error = client.client.ztw.forwarding_rules.delete_rule(updated_rule.id) + ... if error: + ... print(f"Error deleting rule: {error}") + ... return + + """ + http_method = "delete".upper() + api_url = format_url( + f""" + {self._ztw_base_endpoint} + /ecRules/ecRdr/{rule_id} + """ + ) + + params = {} + + request, error = self._request_executor.create_request(http_method, api_url, params=params) + if error: + return (None, None, error) + + response, error = self._request_executor.execute(request) + if error: + return (None, response, error) + return (None, response, None)