zscaler-sdk-python 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zscaler-sdk-python-0.1.1/CHANGELOG.md +20 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/MANIFEST.in +1 -1
- {zscaler-sdk-python-0.1.0/zscaler_sdk_python.egg-info → zscaler-sdk-python-0.1.1}/PKG-INFO +125 -35
- zscaler-sdk-python-0.1.0/PKG-INFO → zscaler-sdk-python-0.1.1/README.md +112 -43
- zscaler-sdk-python-0.1.1/docsrc/Makefile +24 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/conf.py +5 -7
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/index.rst +3 -3
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/guides/support.rst +2 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/index.rst +4 -1
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/index.rst +2 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/requirements.txt +1 -1
- zscaler-sdk-python-0.1.1/setup.py +44 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_activation.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_admin_and_role_management.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_authentication_settings.py +3 -6
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_cloud_firewall_ip_destination_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_cloud_firewall_ip_source_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_cloud_firewall_rule.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_dictionary.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_engines.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_icap_server.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_idm_profile.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_incident_receiver.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_dlp_web_rule.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_isolation_profile.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_location_group.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_location_management.py +5 -10
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_rule_labels.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_sandbox.py +6 -12
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_security.py +9 -16
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_traffic_gre_tunnel.py +6 -12
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_traffic_static_ip.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_traffic_vpn_credential.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_url_categories.py +3 -6
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_url_filtering_rule.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/test_users.py +3 -6
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_access_policy_forwarding_rules.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_access_policy_rules.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_access_policy_timeout_rules.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_app_connector_groups.py +5 -14
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_application_segment.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_application_servers.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_ba_certificates.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_enrolment_certificates.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_idp.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_isolation_profile.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_machine_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_posture_profiles.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_pra_approval.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_pra_credential.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_pra_portal.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_provisioning_key_app_connector_group.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_provisioning_key_service_edge_group.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_saml_attributes.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_scim_attributes.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_scim_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_segment_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_server_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_service_edge_groups.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/test_trusted_networks.py +1 -2
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/__init__.py +1 -1
- zscaler-sdk-python-0.1.0/README.md → zscaler-sdk-python-0.1.1/zscaler_sdk_python.egg-info/PKG-INFO +133 -32
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler_sdk_python.egg-info/SOURCES.txt +0 -1
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler_sdk_python.egg-info/requires.txt +14 -0
- zscaler-sdk-python-0.1.0/CHANGELOG.md +0 -9
- zscaler-sdk-python-0.1.0/LONG_DESCRIPTION.md +0 -232
- zscaler-sdk-python-0.1.0/docsrc/Makefile +0 -185
- zscaler-sdk-python-0.1.0/setup.py +0 -54
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/LICENSE.md +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/guides/examples.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/guides/index.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/guides/troubleshooting.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/activate.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/admin_and_role_management.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/apptotal.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/audit_logs.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/authentication_settings.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/cloud_apps.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/device_management.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/dlp.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/firewall.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/forwarding_control.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/isolation_profile.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/locations.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/rule_labels.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/sandbox.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/security.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/ssl_inspection.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/traffic.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/url_categories.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/url_filtering.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/users.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/web_dlp.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/workload_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zia/zpa_gateway.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/app_segments.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/app_segments_inspection.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/app_segments_pra.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/certificates.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/cloud_connector_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/connectors.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/emergency_access.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/idp.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/inspection.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/isolation_profile.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/lss.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/machine_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/policies.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/posture_profiles.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/privileged_remote_access.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/provisioning.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/saml_attributes.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/scim_attributes.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/scim_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/segment_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/server_groups.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/servers.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/service_edges.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/docsrc/zs/zpa/trusted_networks.rst +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/setup.cfg +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/conftest.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zia/conftest.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/integration/zpa/conftest.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tests/test_utils.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/tox.ini +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/cache/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/cache/cache.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/cache/no_op_cache.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/cache/zscaler_cache.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/constants.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/errors/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/errors/error.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/errors/http_error.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/errors/zscaler_api_error.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/exceptions/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/exceptions/exceptions.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/logger.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/ratelimiter/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/ratelimiter/ratelimiter.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/user_agent.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/utils.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/activate.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/admin_and_role_management.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/apptotal.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/audit_logs.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/authentication_settings.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/client.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/cloud_apps.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/device_management.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/dlp.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/errors.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/firewall.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/forwarding_control.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/isolation_profile.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/labels.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/locations.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/sandbox.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/security.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/ssl_inspection.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/traffic.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/url_categories.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/url_filtering.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/users.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/web_dlp.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/workload_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zia/zpa_gateway.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/README.md +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/__init__.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/app_segments.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/app_segments_inspection.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/app_segments_pra.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/certificates.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/client.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/cloud_connector_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/connectors.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/emergency_access.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/errors.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/idp.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/inspection.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/isolation_profile.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/lss.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/machine_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/policies.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/posture_profiles.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/privileged_remote_access.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/provisioning.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/saml_attributes.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/scim_attributes.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/scim_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/segment_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/server_groups.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/servers.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/service_edges.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler/zpa/trusted_networks.py +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler_sdk_python.egg-info/dependency_links.txt +0 -0
- {zscaler-sdk-python-0.1.0 → zscaler-sdk-python-0.1.1}/zscaler_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zscaler Python SDK Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.1 (April, 19 2024)
|
|
4
|
+
|
|
5
|
+
### Notes
|
|
6
|
+
|
|
7
|
+
- Python Versions: **v3.8, v3.9, v3.10, v3.11**
|
|
8
|
+
|
|
9
|
+
### Internal Changes
|
|
10
|
+
* Refactored `setup.py` for better packaging and improved long description through README.md ([#57](https://github.com/zscaler/zscaler-sdk-python/pull/57))
|
|
11
|
+
* Refactored Integration Tests by removing `async` decorators ([#63](https://github.com/zscaler/zscaler-sdk-python/pull/63))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 0.1.0 (April, 18 2024)
|
|
15
|
+
|
|
16
|
+
### Notes
|
|
17
|
+
|
|
18
|
+
- Python Versions: **v3.8, v3.9, v3.10, v3.11**
|
|
19
|
+
|
|
20
|
+
🎉 **Initial Release** 🎉
|
|
@@ -1,70 +1,145 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zscaler-sdk-python
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary: Official Python SDK for the Zscaler Products
|
|
5
|
-
Home-page: https://
|
|
6
|
-
Author: Zscaler
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Official Python SDK for the Zscaler Products (Beta)
|
|
5
|
+
Home-page: https://zscaler-sdk-python.readthedocs.io
|
|
6
|
+
Author: Zscaler, Inc.
|
|
7
7
|
Author-email: devrel@zscaler.com
|
|
8
|
+
Keywords: zscaler,sdk,zpa,zia,zdx,zcc,zcon
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
8
17
|
Requires-Python: >=3.8,<4.0
|
|
9
18
|
Description-Content-Type: text/markdown
|
|
19
|
+
Provides-Extra: dev
|
|
10
20
|
License-File: LICENSE.md
|
|
11
21
|
|
|
12
|
-
# Official Python SDK for the Zscaler Products
|
|
22
|
+
# Official Python SDK for the Zscaler Products (Beta)
|
|
13
23
|
|
|
14
|
-
[](https://zscaler-sdk-python.readthedocs.io/en/latest/?badge=latest)
|
|
24
|
+
[](https://pypistats.org/packages/zscaler-sdk-python)
|
|
16
25
|
[](https://github.com/zscaler/zscaler-sdk-python)
|
|
26
|
+
[](https://zscaler-sdk-python.readthedocs.io/en/latest/?badge=latest)
|
|
17
27
|
[](https://pypi.org/project/zscaler-sdk-python)
|
|
18
28
|
[](https://pypi.python.org/pypi/zscaler-sdk-python/)
|
|
19
|
-
[](https://github.com/zscaler/zscaler-sdk-python/releases/)
|
|
20
29
|
[](https://community.zscaler.com/)
|
|
21
30
|
|
|
22
31
|
## Support Disclaimer
|
|
23
32
|
|
|
24
|
-
-> **Disclaimer:** Please refer to our [General Support Statement](
|
|
33
|
+
-> **Disclaimer:** Please refer to our [General Support Statement](docsrc/zs/guides/support.rst) before proceeding with the use of this provider. You can also refer to our [troubleshooting guide](docsrc/zs/guides/troubleshooting.rst) for guidance on typical problems.
|
|
25
34
|
|
|
26
35
|
## Zscaler Python SDK Overview
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
The Zscaler SDK for Python includes functionality to accelerate development with [Python](https://www.python.org/) several Zscaler services such as:
|
|
29
38
|
|
|
30
|
-
* Zscaler
|
|
31
|
-
* Zscaler
|
|
39
|
+
* [Zscaler Internet Access (ZIA)](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
40
|
+
* [Zscaler Private Access (ZPA)](https://help.zscaler.com/zpa/getting-started-zpa-api)
|
|
32
41
|
* [Documentation](http://zscaler-sdk-python.readthedocs.io)
|
|
33
42
|
|
|
34
|
-
|
|
43
|
+
Each package is supportedd by an individual and robust HTTP client designed to handle failures on different levels by performing intelligent retries.
|
|
35
44
|
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
**Beta:** This SDK is supported for production use cases, but we do expect future releases to have some interface changes; see [Interface stability](#interface-stability).
|
|
46
|
+
We are keen to hear feedback from you on these SDKs. Please [file issues](https://github.com/zscaler/zscaler-sdk-python/issues), and we will address them.
|
|
47
|
+
|
|
48
|
+
## Contents
|
|
38
49
|
|
|
39
|
-
- [Release Status](#release-status)
|
|
40
|
-
- [Need help?](#need-help)
|
|
41
50
|
- [Getting Started](#getting-started)
|
|
51
|
+
- [Usage](#usage)
|
|
52
|
+
- [Authentication](#authentication)
|
|
42
53
|
- [Pagination](#pagination)
|
|
43
54
|
- [Logging](#logging)
|
|
44
55
|
- [Rate Limiting](#rate-limiting)
|
|
45
56
|
- [Environment variables](#environment-variables)
|
|
46
57
|
- [Building the SDK](#building-the-sdk)
|
|
58
|
+
- [Interface stability](#interface-stability)
|
|
59
|
+
- [Need help?](#need-help)
|
|
47
60
|
- [Contributing](#contributing)
|
|
48
61
|
|
|
49
62
|
> Requires Python version 3.8.0 or higher.
|
|
50
63
|
|
|
51
|
-
##
|
|
64
|
+
## Getting started<a id="getting-started"></a>
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
To install the Zscaler Python SDK in your project:
|
|
67
|
+
1. Please install Zscaler SDK for Python via `pip install zscaler-sdk-python` and instantiate the respective client based on your project usage:
|
|
68
|
+
- `ZIAClientHelper`
|
|
69
|
+
- `ZPAClientHelper`
|
|
54
70
|
|
|
55
|
-
|
|
56
|
-
- Post [issues on GitHub][github-issues] (for code errors)
|
|
57
|
-
- Support [customer support portal][zscaler-support]
|
|
71
|
+
Zscaler SDK for Python is compatible with Python 3.7 _(until [June 2023](https://devguide.python.org/versions/))_, 3.8, 3.9, 3.10, and 3.11.
|
|
58
72
|
|
|
59
|
-
|
|
73
|
+
The upgrade to the latest version of this SDK can be done by executing the following command:
|
|
74
|
+
```python
|
|
75
|
+
%pip install --upgrade zscaler-sdk-python
|
|
76
|
+
```
|
|
77
|
+
followed by
|
|
78
|
+
```python
|
|
79
|
+
dbutils.library.restartPython()
|
|
80
|
+
```
|
|
60
81
|
|
|
61
|
-
|
|
82
|
+
## Authentication<a id="authentication"></a>
|
|
62
83
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
84
|
+
Each Zscaler product has separate developer documentation and authentication methods. In this section you will find
|
|
85
|
+
|
|
86
|
+
1. Credentials that are hard-coded into configuration arguments.
|
|
87
|
+
|
|
88
|
+
:warning: **Caution**: Zscaler does not recommend hard-coding credentials into arguments, as they can be exposed in plain text in version control systems. Use environment variables instead.
|
|
89
|
+
|
|
90
|
+
### ZIA native authentication
|
|
91
|
+
|
|
92
|
+
- For authentication via Zscaler Internet Access, you must provide `username`, `password`, `api_key` and `cloud`
|
|
93
|
+
|
|
94
|
+
The ZIA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
|
|
95
|
+
|
|
96
|
+
* `zscaler`
|
|
97
|
+
* `zscalerone`
|
|
98
|
+
* `zscalertwo`
|
|
99
|
+
* `zscalerthree`
|
|
100
|
+
* `zscloud`
|
|
101
|
+
* `zscalerbeta`
|
|
102
|
+
* `zscalergov`
|
|
103
|
+
* `zscalerten`
|
|
104
|
+
* `zspreview`
|
|
66
105
|
|
|
67
|
-
|
|
106
|
+
### Environment variables
|
|
107
|
+
|
|
108
|
+
You can provide credentials via the `ZIA_USERNAME`, `ZIA_PASSWORD`, `ZIA_API_KEY`, `ZIA_CLOUD` environment variables, representing your ZIA `username`, `password`, `api_key` and `cloud` respectively.
|
|
109
|
+
|
|
110
|
+
| Argument | Description | Environment variable |
|
|
111
|
+
|--------------|-------------|-------------------|
|
|
112
|
+
| `username` | _(String)_ A string that contains the email ID of the API admin.| `ZIA_USERNAME` |
|
|
113
|
+
| `password` | _(String)_ A string that contains the password for the API admin.| `ZIA_PASSWORD` |
|
|
114
|
+
| `api_key` | _(String)_ A string that contains the obfuscated API key (i.e., the return value of the obfuscateApiKey() method).| `ZIA_API_KEY` |
|
|
115
|
+
| `cloud` | _(String)_ The host and basePath for the cloud services API is `$zsapi.<Zscaler Cloud Name>/api/v1`.| `ZIA_CLOUD` |
|
|
116
|
+
|
|
117
|
+
### ZPA native authentication
|
|
118
|
+
|
|
119
|
+
- For authentication via Zscaler Private Access, you must provide `client_id`, `client_secret`, `customer_id` and `cloud`
|
|
120
|
+
|
|
121
|
+
The ZPA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
|
|
122
|
+
|
|
123
|
+
* `PRODUCTION`
|
|
124
|
+
* `ZPATWO`
|
|
125
|
+
* `BETA`
|
|
126
|
+
* `GOV`
|
|
127
|
+
* `GOVUS`
|
|
128
|
+
|
|
129
|
+
### Environment variables
|
|
130
|
+
|
|
131
|
+
You can provide credentials via the `ZPA_CLIENT_ID`, `ZPA_CLIENT_SECRET`, `ZPA_CUSTOMER_ID`, `ZPA_CLOUD` environment variables, representing your ZPA `client_id`, `client_secret`, `customer_id` and `cloud` of your ZPA account, respectively.
|
|
132
|
+
|
|
133
|
+
~> **NOTE** `ZPA_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
|
|
134
|
+
|
|
135
|
+
| Argument | Description | Environment variable |
|
|
136
|
+
|--------------|-------------|-------------------|
|
|
137
|
+
| `client_id` | _(String)_ The ZPA API client ID generated from the ZPA console.| `ZPA_CLIENT_ID` |
|
|
138
|
+
| `client_secret` | _(String)_ The ZPA API client secret generated from the ZPA console.| `ZPA_CLIENT_SECRET` |
|
|
139
|
+
| `customer_id` | _(String)_ The ZPA tenant ID found in the Administration > Company menu in the ZPA console.| `ZPA_CUSTOMER_ID` |
|
|
140
|
+
| `cloud` | _(String)_ The Zscaler cloud for your tenancy.| `ZPA_CLOUD` |
|
|
141
|
+
|
|
142
|
+
## Usage<a id="usage"></a>
|
|
68
143
|
|
|
69
144
|
Before you can interact with any of the Zscaler APIs, you need to generate API keys or retrieve tenancy information for each product that you are interfacing with. Once you have the requirements and you have installed Zscaler SDK Python, you're ready to go.
|
|
70
145
|
|
|
@@ -92,7 +167,7 @@ for app_segment in zpa.app_segments.list_segments():
|
|
|
92
167
|
|
|
93
168
|
~> **NOTE** The `ZPA_CLOUD` environment variable is optional and only required if your project needs to interact with any other ZPA cloud other than production cloud. In this case, use the `ZPA_CLOUD` environment variable followed by the name of the corresponding environment: `ZPA_CLOUD=BETA`, `ZPA_CLOUD=ZPATWO`, `ZPA_CLOUD=GOV`, `ZPA_CLOUD=GOVUS`, `ZPA_CLOUD=PREVIEW`, `ZPA_CLOUD=DEV`.
|
|
94
169
|
|
|
95
|
-
## Pagination
|
|
170
|
+
## Pagination<a id="pagination"></a>
|
|
96
171
|
|
|
97
172
|
This SDK provides methods that retrieve a list of resources from the API, which return paginated results due to the volume of data. Each method capable of returning paginated data is prefixed as `list_` and handles the pagination internally by providing an easy interface to iterate through pages. The user does not need to manually fetch each page; instead, they can process items as they iterate through them.
|
|
98
173
|
|
|
@@ -142,7 +217,7 @@ For more details on each pagination parameter see:
|
|
|
142
217
|
[ZPA Pagination Parameters](zscaler/zpa/README.md)
|
|
143
218
|
[ZIA Pagination Parameters](zscaler/zia/README.md)
|
|
144
219
|
|
|
145
|
-
## Logging
|
|
220
|
+
## Logging<a id="logging"></a>
|
|
146
221
|
|
|
147
222
|
The Zscaler SDK Python, provides robust logging for debug purposes.
|
|
148
223
|
Logs are disabled by default and should be enabled explicitly via custom environment variable:
|
|
@@ -161,7 +236,7 @@ You should now see logs in your console. Notice that API tokens are **NOT** logg
|
|
|
161
236
|
|
|
162
237
|
What it being logged? `requests`, `responses`, `http errors`, `caching responses`.
|
|
163
238
|
|
|
164
|
-
|
|
239
|
+
## Environment variables<a id="environment-variables"></a>
|
|
165
240
|
|
|
166
241
|
Each one of the configuration values above can be turned into an environment variable name with the `_` (underscore) character and UPPERCASE characters. The following are accepted:
|
|
167
242
|
|
|
@@ -171,7 +246,7 @@ Each one of the configuration values above can be turned into an environment var
|
|
|
171
246
|
- `ZSCALER_SDK_LOG` - Turn on logging
|
|
172
247
|
- `ZSCALER_SDK_VERBOSE` - Turn on logging in verbose mode
|
|
173
248
|
|
|
174
|
-
## Rate Limiting
|
|
249
|
+
## Rate Limiting<a id="rate-limiting"></a>
|
|
175
250
|
|
|
176
251
|
Zscaler provides unique rate limiting numbers for each individual product. Regardless of the product, a 429 response will be returned if too many requests are made within a given time.
|
|
177
252
|
Please see:
|
|
@@ -190,17 +265,24 @@ Retry Conditions: The client for both ZPA and ZIA retries a request under the fo
|
|
|
190
265
|
|
|
191
266
|
* Exceptions during request execution: Any requests.RequestException encountered during the request triggers a retry, except on the last attempt, where the exception is raised.
|
|
192
267
|
|
|
193
|
-
## Building the SDK
|
|
268
|
+
## Building the SDK<a id="building-the-sdk"></a>
|
|
194
269
|
|
|
195
270
|
In most cases, you won't need to build the SDK from source. If you want to build it yourself, you'll need these prerequisites:
|
|
196
271
|
|
|
197
272
|
- Clone the repo
|
|
198
273
|
- Run `make build:dist` from the root of the project (assuming Python is installed)
|
|
199
|
-
- Ensure tests run succesfully
|
|
274
|
+
- Ensure tests run succesfully by executing `make test-simple`
|
|
200
275
|
- Install `tox` if not installed already using: `pip install tox`.
|
|
201
276
|
- Run tests using `tox` in the root directory of the project.
|
|
202
277
|
|
|
203
|
-
##
|
|
278
|
+
## Interface stability<a id="interface-stability"></a>
|
|
279
|
+
|
|
280
|
+
Zscaler is actively working on stabilizing the Zscaler SDK for Python's interfaces.
|
|
281
|
+
You are highly encouraged to pin the exact dependency version and read the [changelog](https://github.com/zscaler/zscaler-sdk-python/blob/master/CHANGELOG.md)
|
|
282
|
+
where Zscaler documents the changes. Zscaler may have minor [documented](https://github.com/zscaler/zscaler-sdk-python/blob/master/CHANGELOG.md)
|
|
283
|
+
backward-incompatible changes, such as renaming some type names to bring more consistency.
|
|
284
|
+
|
|
285
|
+
## Contributing<a id="contributing"></a>
|
|
204
286
|
|
|
205
287
|
At this moment we are not accepting contributions, but we welcome suggestions on how to improve this SDK or feature requests, which can then be added in future releases.
|
|
206
288
|
|
|
@@ -210,6 +292,14 @@ At this moment we are not accepting contributions, but we welcome suggestions on
|
|
|
210
292
|
[rate-limiting-zpa]: https://help.zscaler.com/zpa/understanding-rate-limiting
|
|
211
293
|
[rate-limiting-zia]: https://help.zscaler.com/zia/understanding-rate-limiting
|
|
212
294
|
|
|
295
|
+
## Need help?<a id="need-help"></a>
|
|
296
|
+
|
|
297
|
+
If you run into problems using the SDK, you can:
|
|
298
|
+
|
|
299
|
+
- Ask questions on the [Zenith Community][zenith]
|
|
300
|
+
- Post [issues on GitHub][github-issues] (for code errors)
|
|
301
|
+
- Support [customer support portal][zscaler-support]
|
|
302
|
+
|
|
213
303
|
Contributors
|
|
214
304
|
------------
|
|
215
305
|
|
|
@@ -1,70 +1,124 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Summary: Official Python SDK for the Zscaler Products
|
|
5
|
-
Home-page: https://github.com/zscaler/zscaler-sdk-python
|
|
6
|
-
Author: Zscaler Technology Alliances
|
|
7
|
-
Author-email: devrel@zscaler.com
|
|
8
|
-
Requires-Python: >=3.8,<4.0
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE.md
|
|
11
|
-
|
|
12
|
-
# Official Python SDK for the Zscaler Products
|
|
13
|
-
|
|
14
|
-
[](https://github.com/zscaler/zscaler-sdk-python/actions/workflows/ci.yml)
|
|
15
|
-
[](https://zscaler-sdk-python.readthedocs.io/en/latest/?badge=latest)
|
|
1
|
+
# Official Python SDK for the Zscaler Products (Beta)
|
|
2
|
+
|
|
3
|
+
[](https://pypistats.org/packages/zscaler-sdk-python)
|
|
16
4
|
[](https://github.com/zscaler/zscaler-sdk-python)
|
|
5
|
+
[](https://zscaler-sdk-python.readthedocs.io/en/latest/?badge=latest)
|
|
17
6
|
[](https://pypi.org/project/zscaler-sdk-python)
|
|
18
7
|
[](https://pypi.python.org/pypi/zscaler-sdk-python/)
|
|
19
|
-
[](https://github.com/zscaler/zscaler-sdk-python/releases/)
|
|
20
8
|
[](https://community.zscaler.com/)
|
|
21
9
|
|
|
22
10
|
## Support Disclaimer
|
|
23
11
|
|
|
24
|
-
-> **Disclaimer:** Please refer to our [General Support Statement](
|
|
12
|
+
-> **Disclaimer:** Please refer to our [General Support Statement](docsrc/zs/guides/support.rst) before proceeding with the use of this provider. You can also refer to our [troubleshooting guide](docsrc/zs/guides/troubleshooting.rst) for guidance on typical problems.
|
|
25
13
|
|
|
26
14
|
## Zscaler Python SDK Overview
|
|
27
15
|
|
|
28
|
-
|
|
16
|
+
The Zscaler SDK for Python includes functionality to accelerate development with [Python](https://www.python.org/) several Zscaler services such as:
|
|
29
17
|
|
|
30
|
-
* Zscaler
|
|
31
|
-
* Zscaler
|
|
18
|
+
* [Zscaler Internet Access (ZIA)](https://help.zscaler.com/zia/getting-started-zia-api)
|
|
19
|
+
* [Zscaler Private Access (ZPA)](https://help.zscaler.com/zpa/getting-started-zpa-api)
|
|
32
20
|
* [Documentation](http://zscaler-sdk-python.readthedocs.io)
|
|
33
21
|
|
|
34
|
-
|
|
22
|
+
Each package is supportedd by an individual and robust HTTP client designed to handle failures on different levels by performing intelligent retries.
|
|
35
23
|
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
**Beta:** This SDK is supported for production use cases, but we do expect future releases to have some interface changes; see [Interface stability](#interface-stability).
|
|
25
|
+
We are keen to hear feedback from you on these SDKs. Please [file issues](https://github.com/zscaler/zscaler-sdk-python/issues), and we will address them.
|
|
26
|
+
|
|
27
|
+
## Contents
|
|
38
28
|
|
|
39
|
-
- [Release Status](#release-status)
|
|
40
|
-
- [Need help?](#need-help)
|
|
41
29
|
- [Getting Started](#getting-started)
|
|
30
|
+
- [Usage](#usage)
|
|
31
|
+
- [Authentication](#authentication)
|
|
42
32
|
- [Pagination](#pagination)
|
|
43
33
|
- [Logging](#logging)
|
|
44
34
|
- [Rate Limiting](#rate-limiting)
|
|
45
35
|
- [Environment variables](#environment-variables)
|
|
46
36
|
- [Building the SDK](#building-the-sdk)
|
|
37
|
+
- [Interface stability](#interface-stability)
|
|
38
|
+
- [Need help?](#need-help)
|
|
47
39
|
- [Contributing](#contributing)
|
|
48
40
|
|
|
49
41
|
> Requires Python version 3.8.0 or higher.
|
|
50
42
|
|
|
51
|
-
##
|
|
43
|
+
## Getting started<a id="getting-started"></a>
|
|
52
44
|
|
|
53
|
-
|
|
45
|
+
To install the Zscaler Python SDK in your project:
|
|
46
|
+
1. Please install Zscaler SDK for Python via `pip install zscaler-sdk-python` and instantiate the respective client based on your project usage:
|
|
47
|
+
- `ZIAClientHelper`
|
|
48
|
+
- `ZPAClientHelper`
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
Zscaler SDK for Python is compatible with Python 3.7 _(until [June 2023](https://devguide.python.org/versions/))_, 3.8, 3.9, 3.10, and 3.11.
|
|
51
|
+
|
|
52
|
+
The upgrade to the latest version of this SDK can be done by executing the following command:
|
|
53
|
+
```python
|
|
54
|
+
%pip install --upgrade zscaler-sdk-python
|
|
55
|
+
```
|
|
56
|
+
followed by
|
|
57
|
+
```python
|
|
58
|
+
dbutils.library.restartPython()
|
|
59
|
+
```
|
|
58
60
|
|
|
59
|
-
##
|
|
61
|
+
## Authentication<a id="authentication"></a>
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
Each Zscaler product has separate developer documentation and authentication methods. In this section you will find
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
1. Credentials that are hard-coded into configuration arguments.
|
|
66
|
+
|
|
67
|
+
:warning: **Caution**: Zscaler does not recommend hard-coding credentials into arguments, as they can be exposed in plain text in version control systems. Use environment variables instead.
|
|
68
|
+
|
|
69
|
+
### ZIA native authentication
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
- For authentication via Zscaler Internet Access, you must provide `username`, `password`, `api_key` and `cloud`
|
|
72
|
+
|
|
73
|
+
The ZIA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
|
|
74
|
+
|
|
75
|
+
* `zscaler`
|
|
76
|
+
* `zscalerone`
|
|
77
|
+
* `zscalertwo`
|
|
78
|
+
* `zscalerthree`
|
|
79
|
+
* `zscloud`
|
|
80
|
+
* `zscalerbeta`
|
|
81
|
+
* `zscalergov`
|
|
82
|
+
* `zscalerten`
|
|
83
|
+
* `zspreview`
|
|
84
|
+
|
|
85
|
+
### Environment variables
|
|
86
|
+
|
|
87
|
+
You can provide credentials via the `ZIA_USERNAME`, `ZIA_PASSWORD`, `ZIA_API_KEY`, `ZIA_CLOUD` environment variables, representing your ZIA `username`, `password`, `api_key` and `cloud` respectively.
|
|
88
|
+
|
|
89
|
+
| Argument | Description | Environment variable |
|
|
90
|
+
|--------------|-------------|-------------------|
|
|
91
|
+
| `username` | _(String)_ A string that contains the email ID of the API admin.| `ZIA_USERNAME` |
|
|
92
|
+
| `password` | _(String)_ A string that contains the password for the API admin.| `ZIA_PASSWORD` |
|
|
93
|
+
| `api_key` | _(String)_ A string that contains the obfuscated API key (i.e., the return value of the obfuscateApiKey() method).| `ZIA_API_KEY` |
|
|
94
|
+
| `cloud` | _(String)_ The host and basePath for the cloud services API is `$zsapi.<Zscaler Cloud Name>/api/v1`.| `ZIA_CLOUD` |
|
|
95
|
+
|
|
96
|
+
### ZPA native authentication
|
|
97
|
+
|
|
98
|
+
- For authentication via Zscaler Private Access, you must provide `client_id`, `client_secret`, `customer_id` and `cloud`
|
|
99
|
+
|
|
100
|
+
The ZPA Cloud is identified by several cloud name prefixes, which determines which API endpoint the requests should be sent to. The following cloud environments are supported:
|
|
101
|
+
|
|
102
|
+
* `PRODUCTION`
|
|
103
|
+
* `ZPATWO`
|
|
104
|
+
* `BETA`
|
|
105
|
+
* `GOV`
|
|
106
|
+
* `GOVUS`
|
|
107
|
+
|
|
108
|
+
### Environment variables
|
|
109
|
+
|
|
110
|
+
You can provide credentials via the `ZPA_CLIENT_ID`, `ZPA_CLIENT_SECRET`, `ZPA_CUSTOMER_ID`, `ZPA_CLOUD` environment variables, representing your ZPA `client_id`, `client_secret`, `customer_id` and `cloud` of your ZPA account, respectively.
|
|
111
|
+
|
|
112
|
+
~> **NOTE** `ZPA_CLOUD` environment variable is required, and is used to identify the correct API gateway where the API requests should be forwarded to.
|
|
113
|
+
|
|
114
|
+
| Argument | Description | Environment variable |
|
|
115
|
+
|--------------|-------------|-------------------|
|
|
116
|
+
| `client_id` | _(String)_ The ZPA API client ID generated from the ZPA console.| `ZPA_CLIENT_ID` |
|
|
117
|
+
| `client_secret` | _(String)_ The ZPA API client secret generated from the ZPA console.| `ZPA_CLIENT_SECRET` |
|
|
118
|
+
| `customer_id` | _(String)_ The ZPA tenant ID found in the Administration > Company menu in the ZPA console.| `ZPA_CUSTOMER_ID` |
|
|
119
|
+
| `cloud` | _(String)_ The Zscaler cloud for your tenancy.| `ZPA_CLOUD` |
|
|
120
|
+
|
|
121
|
+
## Usage<a id="usage"></a>
|
|
68
122
|
|
|
69
123
|
Before you can interact with any of the Zscaler APIs, you need to generate API keys or retrieve tenancy information for each product that you are interfacing with. Once you have the requirements and you have installed Zscaler SDK Python, you're ready to go.
|
|
70
124
|
|
|
@@ -92,7 +146,7 @@ for app_segment in zpa.app_segments.list_segments():
|
|
|
92
146
|
|
|
93
147
|
~> **NOTE** The `ZPA_CLOUD` environment variable is optional and only required if your project needs to interact with any other ZPA cloud other than production cloud. In this case, use the `ZPA_CLOUD` environment variable followed by the name of the corresponding environment: `ZPA_CLOUD=BETA`, `ZPA_CLOUD=ZPATWO`, `ZPA_CLOUD=GOV`, `ZPA_CLOUD=GOVUS`, `ZPA_CLOUD=PREVIEW`, `ZPA_CLOUD=DEV`.
|
|
94
148
|
|
|
95
|
-
## Pagination
|
|
149
|
+
## Pagination<a id="pagination"></a>
|
|
96
150
|
|
|
97
151
|
This SDK provides methods that retrieve a list of resources from the API, which return paginated results due to the volume of data. Each method capable of returning paginated data is prefixed as `list_` and handles the pagination internally by providing an easy interface to iterate through pages. The user does not need to manually fetch each page; instead, they can process items as they iterate through them.
|
|
98
152
|
|
|
@@ -142,7 +196,7 @@ For more details on each pagination parameter see:
|
|
|
142
196
|
[ZPA Pagination Parameters](zscaler/zpa/README.md)
|
|
143
197
|
[ZIA Pagination Parameters](zscaler/zia/README.md)
|
|
144
198
|
|
|
145
|
-
## Logging
|
|
199
|
+
## Logging<a id="logging"></a>
|
|
146
200
|
|
|
147
201
|
The Zscaler SDK Python, provides robust logging for debug purposes.
|
|
148
202
|
Logs are disabled by default and should be enabled explicitly via custom environment variable:
|
|
@@ -161,7 +215,7 @@ You should now see logs in your console. Notice that API tokens are **NOT** logg
|
|
|
161
215
|
|
|
162
216
|
What it being logged? `requests`, `responses`, `http errors`, `caching responses`.
|
|
163
217
|
|
|
164
|
-
|
|
218
|
+
## Environment variables<a id="environment-variables"></a>
|
|
165
219
|
|
|
166
220
|
Each one of the configuration values above can be turned into an environment variable name with the `_` (underscore) character and UPPERCASE characters. The following are accepted:
|
|
167
221
|
|
|
@@ -171,7 +225,7 @@ Each one of the configuration values above can be turned into an environment var
|
|
|
171
225
|
- `ZSCALER_SDK_LOG` - Turn on logging
|
|
172
226
|
- `ZSCALER_SDK_VERBOSE` - Turn on logging in verbose mode
|
|
173
227
|
|
|
174
|
-
## Rate Limiting
|
|
228
|
+
## Rate Limiting<a id="rate-limiting"></a>
|
|
175
229
|
|
|
176
230
|
Zscaler provides unique rate limiting numbers for each individual product. Regardless of the product, a 429 response will be returned if too many requests are made within a given time.
|
|
177
231
|
Please see:
|
|
@@ -190,17 +244,24 @@ Retry Conditions: The client for both ZPA and ZIA retries a request under the fo
|
|
|
190
244
|
|
|
191
245
|
* Exceptions during request execution: Any requests.RequestException encountered during the request triggers a retry, except on the last attempt, where the exception is raised.
|
|
192
246
|
|
|
193
|
-
## Building the SDK
|
|
247
|
+
## Building the SDK<a id="building-the-sdk"></a>
|
|
194
248
|
|
|
195
249
|
In most cases, you won't need to build the SDK from source. If you want to build it yourself, you'll need these prerequisites:
|
|
196
250
|
|
|
197
251
|
- Clone the repo
|
|
198
252
|
- Run `make build:dist` from the root of the project (assuming Python is installed)
|
|
199
|
-
- Ensure tests run succesfully
|
|
253
|
+
- Ensure tests run succesfully by executing `make test-simple`
|
|
200
254
|
- Install `tox` if not installed already using: `pip install tox`.
|
|
201
255
|
- Run tests using `tox` in the root directory of the project.
|
|
202
256
|
|
|
203
|
-
##
|
|
257
|
+
## Interface stability<a id="interface-stability"></a>
|
|
258
|
+
|
|
259
|
+
Zscaler is actively working on stabilizing the Zscaler SDK for Python's interfaces.
|
|
260
|
+
You are highly encouraged to pin the exact dependency version and read the [changelog](https://github.com/zscaler/zscaler-sdk-python/blob/master/CHANGELOG.md)
|
|
261
|
+
where Zscaler documents the changes. Zscaler may have minor [documented](https://github.com/zscaler/zscaler-sdk-python/blob/master/CHANGELOG.md)
|
|
262
|
+
backward-incompatible changes, such as renaming some type names to bring more consistency.
|
|
263
|
+
|
|
264
|
+
## Contributing<a id="contributing"></a>
|
|
204
265
|
|
|
205
266
|
At this moment we are not accepting contributions, but we welcome suggestions on how to improve this SDK or feature requests, which can then be added in future releases.
|
|
206
267
|
|
|
@@ -210,6 +271,14 @@ At this moment we are not accepting contributions, but we welcome suggestions on
|
|
|
210
271
|
[rate-limiting-zpa]: https://help.zscaler.com/zpa/understanding-rate-limiting
|
|
211
272
|
[rate-limiting-zia]: https://help.zscaler.com/zia/understanding-rate-limiting
|
|
212
273
|
|
|
274
|
+
## Need help?<a id="need-help"></a>
|
|
275
|
+
|
|
276
|
+
If you run into problems using the SDK, you can:
|
|
277
|
+
|
|
278
|
+
- Ask questions on the [Zenith Community][zenith]
|
|
279
|
+
- Post [issues on GitHub][github-issues] (for code errors)
|
|
280
|
+
- Support [customer support portal][zscaler-support]
|
|
281
|
+
|
|
213
282
|
Contributors
|
|
214
283
|
------------
|
|
215
284
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line.
|
|
5
|
+
SPHINXOPTS =
|
|
6
|
+
SPHINXBUILD = sphinx-build
|
|
7
|
+
SOURCEDIR = .
|
|
8
|
+
BUILDDIR = _build
|
|
9
|
+
|
|
10
|
+
# Put it first so that "make" without argument is like "make help".
|
|
11
|
+
help:
|
|
12
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
13
|
+
|
|
14
|
+
github:
|
|
15
|
+
@make html
|
|
16
|
+
@cp -a _build/html/. ../docs
|
|
17
|
+
|
|
18
|
+
.PHONY: help Makefile
|
|
19
|
+
|
|
20
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
21
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
22
|
+
%: Makefile
|
|
23
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
24
|
+
|
|
@@ -14,9 +14,8 @@
|
|
|
14
14
|
#
|
|
15
15
|
import os
|
|
16
16
|
import sys
|
|
17
|
-
import zscaler
|
|
18
17
|
|
|
19
|
-
sys.path.insert(0, os.path.abspath(
|
|
18
|
+
sys.path.insert(0, os.path.abspath('..'))
|
|
20
19
|
|
|
21
20
|
# Check if building documentation on RTD
|
|
22
21
|
on_rtd = os.environ.get("READTHEDOCS", None) == "True"
|
|
@@ -29,9 +28,9 @@ author = "Zscaler Technology Alliances"
|
|
|
29
28
|
html_title = ""
|
|
30
29
|
|
|
31
30
|
# The short X.Y version
|
|
32
|
-
version = '0.1.
|
|
31
|
+
version = '0.1.1'
|
|
33
32
|
# The full version, including alpha/beta/rc tags
|
|
34
|
-
release = '0.1.
|
|
33
|
+
release = '0.1.1'
|
|
35
34
|
|
|
36
35
|
# -- General configuration ---------------------------------------------------
|
|
37
36
|
|
|
@@ -115,7 +114,7 @@ html_static_path = []
|
|
|
115
114
|
# -- Options for HTMLHelp output ---------------------------------------------
|
|
116
115
|
|
|
117
116
|
# Output file base name for HTML help builder.
|
|
118
|
-
htmlhelp_basename = "
|
|
117
|
+
htmlhelp_basename = "zscalerdoc"
|
|
119
118
|
|
|
120
119
|
# -- Options for LaTeX output ------------------------------------------------
|
|
121
120
|
|
|
@@ -141,7 +140,7 @@ latex_documents = [
|
|
|
141
140
|
(
|
|
142
141
|
master_doc,
|
|
143
142
|
"Zscaler.tex",
|
|
144
|
-
"Zscaler Documentation",
|
|
143
|
+
"Zscaler SDK Python Documentation",
|
|
145
144
|
"Zscaler Technology Alliances",
|
|
146
145
|
"manual",
|
|
147
146
|
),
|
|
@@ -195,7 +194,6 @@ epub_exclude_files = ["search.html"]
|
|
|
195
194
|
intersphinx_mapping = {
|
|
196
195
|
"python": ("https://docs.python.org/3", None),
|
|
197
196
|
"restfly": ("https://restfly.readthedocs.io/en/latest/", None),
|
|
198
|
-
"box": ("https://box.readthedocs.io/en/latest", None),
|
|
199
197
|
}
|
|
200
198
|
|
|
201
199
|
# -- Options for todo extension ----------------------------------------------
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
:description lang=en:
|
|
3
3
|
Official Zscaler Python SDK that provides a simple and uniform interface for each of the Zscaler product APIs.
|
|
4
4
|
.. toctree::
|
|
5
|
-
:maxdepth:
|
|
5
|
+
:maxdepth: 2
|
|
6
6
|
:hidden:
|
|
7
7
|
:caption: Contents
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
zs/zpa/index
|
|
11
11
|
zs/guides/index
|
|
12
12
|
|
|
13
|
-
Zscaler SDK Python - Library Reference
|
|
13
|
+
Zscaler SDK Python (Beta) - Library Reference
|
|
14
14
|
=====================================================================
|
|
15
15
|
Zscaler SDK Python is an SDK that provides a uniform and easy-to-use interface for each of the Zscaler product APIs.
|
|
16
16
|
|
|
@@ -49,7 +49,7 @@ This repository contains the Zscaler SDK for Python. This SDK can be used to int
|
|
|
49
49
|
- :doc:`Zscaler Private Access (ZPA) <zs/zpa/index>`
|
|
50
50
|
- :doc:`Zscaler Internet Access (ZIA) <zs/zia/index>`
|
|
51
51
|
|
|
52
|
-
* `Documentation <https
|
|
52
|
+
* `Documentation <https://zscaler-sdk-python.readthedocs.io>`_
|
|
53
53
|
|
|
54
54
|
Installation
|
|
55
55
|
==============
|
|
@@ -13,7 +13,6 @@ Support Ticket Severity
|
|
|
13
13
|
-----------------------
|
|
14
14
|
|
|
15
15
|
Support tickets related to the GO SDK can be opened with `Zscaler Support <https://help.zscaler.com/login-tickets>`_, however since the SDK is just a client of the underlying product API, we will **NOT** be able to treat SDK related support requests as a Severity-1 (Immediate time frame).
|
|
16
|
-
|
|
17
16
|
When reporting bugs, please provide the Terraform script that demonstrates the bug and the command output. Stack traces will also be helpful.
|
|
18
17
|
|
|
19
18
|
Notice that we will **NOT**, however, fix bugs upon customer demand, as we have to prioritize all pending bugs and features, as part of the product's backlog and release cycles.
|
|
@@ -24,4 +23,5 @@ Contact
|
|
|
24
23
|
-------
|
|
25
24
|
|
|
26
25
|
For questions or requests that cannot be submitted via GitHub Issues, please contact ``devrel@zscaler.com`` with "Zscaler-SDK-GO" in the subject line.
|
|
27
|
-
We also provide a `private Slack channel <https://docs.google.com/forms/d/e/1FAIpQLSfkd3EMkLQdIWMNQ7QCr8TrH_xVSwSYcQshfBPDEZFOaF28qA/viewform?usp=sf_link>`_
|
|
26
|
+
We also provide a `private Slack channel <https://docs.google.com/forms/d/e/1FAIpQLSfkd3EMkLQdIWMNQ7QCr8TrH_xVSwSYcQshfBPDEZFOaF28qA/viewform?usp=sf_link>`_
|
|
27
|
+
where you can submit your questions to the SDK maintainers. Notice that this form will be reviewed and approved by Zscaler Technology Alliances team.
|