diff --git a/.github/workflows/ansible-test-lint.yml b/.github/workflows/ansible-test-lint.yml new file mode 100644 index 0000000..2d856e8 --- /dev/null +++ b/.github/workflows/ansible-test-lint.yml @@ -0,0 +1,35 @@ +name: Ansible Lint + +on: + push: + branches: [master] + pull_request: + branches: [master] + schedule: + - cron: '0 14 * * 1-5' # UTC + workflow_dispatch: + + +env: + NAMESPACE: zscaler + COLLECTION_NAME: ziacloud + PYTHON_VERSION: 3.8 + +jobs: + + # Ansible-lint is a requirement for certification, and was added to the + # certification pipeline 20 June 2023 per Ansible Partner Engineering + # communication emails + # + # Config file is .ansible-lint + lint: + name: Ansible Lint + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }} + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Run ansible-lint + uses: ansible/ansible-lint@main \ No newline at end of file diff --git a/plugins/modules/zia_authentication_settings.py b/plugins/modules/zia_authentication_settings.py index 3acabe8..fd30cf6 100644 --- a/plugins/modules/zia_authentication_settings.py +++ b/plugins/modules/zia_authentication_settings.py @@ -51,14 +51,13 @@ """ EXAMPLES = """ - - name: Create/Update/Delete URLs zscaler.ziacloud.zia_authentication_settings: urls: - - .okta.com - - .oktacdn.com - - .mtls.oktapreview.com - - .mtls.okta.com + - .okta.com + - .oktacdn.com + - .mtls.oktapreview.com + - .mtls.okta.com """ RETURN = r""" diff --git a/plugins/modules/zia_cloud_firewall_ip_destination_groups.py b/plugins/modules/zia_cloud_firewall_ip_destination_groups.py index e1b77ce..75a404d 100644 --- a/plugins/modules/zia_cloud_firewall_ip_destination_groups.py +++ b/plugins/modules/zia_cloud_firewall_ip_destination_groups.py @@ -100,14 +100,13 @@ """ EXAMPLES = r""" - - name: Create/Update/Delete ip destination group - DSTN_FQDN. zscaler.ziacloud.zia_cloud_firewall_ip_destination_groups: provider: '{{ provider }}' name: "Example" description: "Example" type: "DSTN_FQDN" - addresses: [ "test1.acme.com", "test2.acme.com", "test3.acme.com" ] + addresses: ["test1.acme.com", "test2.acme.com", "test3.acme.com"] - name: Create/Update/Delete ip destination group - DSTN_IP by Country. zscaler.ziacloud.zia_cloud_firewall_ip_destination_groups: @@ -124,10 +123,11 @@ name: "Example - IP Ranges" description: "Example - IP Ranges" type: "DSTN_IP" - addresses: [ "3.217.228.0-3.217.231.255", - "3.235.112.0-3.235.119.255", - "52.23.61.0-52.23.62.25", - "35.80.88.0-35.80.95.255" ] + addresses: + - "3.217.228.0-3.217.231.255" + - "3.235.112.0-3.235.119.255" + - "52.23.61.0-52.23.62.25" + - "35.80.88.0-35.80.95.255" """ RETURN = r""" diff --git a/plugins/modules/zia_cloud_firewall_ip_source_groups.py b/plugins/modules/zia_cloud_firewall_ip_source_groups.py index 551e101..2f7215c 100644 --- a/plugins/modules/zia_cloud_firewall_ip_source_groups.py +++ b/plugins/modules/zia_cloud_firewall_ip_source_groups.py @@ -63,16 +63,15 @@ """ EXAMPLES = r""" - - name: Create/Update/Delete ip source group. zscaler.ziacloud.zia_cloud_firewall_ip_source_groups: provider: '{{ provider }}' name: "Example" description: "Example" ip_addresses: - - 192.168.1.1 - - 192.168.1.2 - - 192.168.1.3 + - 192.168.1.1 + - 192.168.1.2 + - 192.168.1.3 """ RETURN = r""" diff --git a/plugins/modules/zia_cloud_firewall_network_application_group.py b/plugins/modules/zia_cloud_firewall_network_application_group.py index 75b9e36..81326d9 100644 --- a/plugins/modules/zia_cloud_firewall_network_application_group.py +++ b/plugins/modules/zia_cloud_firewall_network_application_group.py @@ -68,17 +68,17 @@ provider: '{{ provider }}' name: "sampleNetworkApplicationGroup" network_applications: - - 'YAMMER' - - 'OFFICE365' - - 'SKYPE_FOR_BUSINESS' - - 'OUTLOOK' - - 'SHAREPOINT' - - 'SHAREPOINT_ADMIN' - - 'SHAREPOINT_BLOG' - - 'SHAREPOINT_CALENDAR' - - 'SHAREPOINT_DOCUMENT' - - 'SHAREPOINT_ONLINE' - - 'ONEDRIVE' + - 'YAMMER' + - 'OFFICE365' + - 'SKYPE_FOR_BUSINESS' + - 'OUTLOOK' + - 'SHAREPOINT' + - 'SHAREPOINT_ADMIN' + - 'SHAREPOINT_BLOG' + - 'SHAREPOINT_CALENDAR' + - 'SHAREPOINT_DOCUMENT' + - 'SHAREPOINT_ONLINE' + - 'ONEDRIVE' """ RETURN = r""" diff --git a/plugins/modules/zia_cloud_firewall_network_services.py b/plugins/modules/zia_cloud_firewall_network_services.py index 736c0a5..d220ad8 100644 --- a/plugins/modules/zia_cloud_firewall_network_services.py +++ b/plugins/modules/zia_cloud_firewall_network_services.py @@ -208,13 +208,12 @@ name: "example" description: "example" src_tcp_ports: - - start: 5002 - end: 5005 + - start: 5002 + end: 5005 dest_tcp_ports: - - start: 5003 - end: 5005 + - start: 5003 + end: 5005 type: "CUSTOM" - """ RETURN = r""" diff --git a/plugins/modules/zia_cloud_firewall_network_services_groups.py b/plugins/modules/zia_cloud_firewall_network_services_groups.py index b4ea1a9..d6ef133 100644 --- a/plugins/modules/zia_cloud_firewall_network_services_groups.py +++ b/plugins/modules/zia_cloud_firewall_network_services_groups.py @@ -63,15 +63,13 @@ """ EXAMPLES = r""" - - name: Create/Update/Delete Network Services Groups. zscaler.ziacloud.zia_cloud_firewall_network_services_groups: provider: '{{ provider }}' name: "example" description: "example" services: - - name: [ "UDP_ANY", "TCP_ANY" ] - + - name: ["UDP_ANY", "TCP_ANY"] """ RETURN = r""" diff --git a/plugins/modules/zia_location_management.py b/plugins/modules/zia_location_management.py index b6c7c04..08c5823 100644 --- a/plugins/modules/zia_location_management.py +++ b/plugins/modules/zia_location_management.py @@ -242,7 +242,7 @@ required: false """ -EXAMPLES = """ +EXAMPLES = r""" - name: Create UFQDN VPN Credential. zscaler.ziacloud.zia_traffic_forwarding_vpn_credentials: type: "UFQDN" @@ -265,8 +265,8 @@ ofw_enabled: true ips_control: true vpn_credentials: - - id: "{{ vpn_credential_ufqdn.data.id }}" - type: "{{ vpn_credential_ufqdn.data.type }}" + - id: "{{ vpn_credential_ufqdn.data.id }}" + type: "{{ vpn_credential_ufqdn.data.type }}" # Create Location Management with VPN IP Type - name: Create/Update/Delete a Static IP. @@ -303,9 +303,9 @@ ips_control: true ip_addresses: "static_ip.data.ip_address" vpn_credentials: - - id: "{{ vpn_credential_ip.data.id }}" - type: "{{ vpn_credential_ip.data.type }}" - ip_address: "{{ vpn_credential_ip.data.ip_address }}" + - id: "{{ vpn_credential_ip.data.id }}" + type: "{{ vpn_credential_ip.data.type }}" + ip_address: "{{ vpn_credential_ip.data.ip_address }}" """ RETURN = """ diff --git a/plugins/modules/zia_sandbox_submission.py b/plugins/modules/zia_sandbox_submission.py index 0bb5a0b..e1cd293 100644 --- a/plugins/modules/zia_sandbox_submission.py +++ b/plugins/modules/zia_sandbox_submission.py @@ -67,7 +67,7 @@ zscaler.ziacloud.zia_sandbox_submission: provider: '{{ provider }}' file_path: "/path/to/malware.exe" - force: True + force: true inspection_mode: sandbox - name: Submit a file for analysis. diff --git a/plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py b/plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py index 100ce17..120dedd 100644 --- a/plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py +++ b/plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py @@ -68,7 +68,6 @@ zscaler.ziacloud.zia_traffic_forwarding_gre_tunnel_facts: provider: '{{ provider }}' id: 82709 - """ RETURN = r""" diff --git a/plugins/modules/zia_traffic_forwarding_gre_tunnels.py b/plugins/modules/zia_traffic_forwarding_gre_tunnels.py index 82661da..56aea20 100644 --- a/plugins/modules/zia_traffic_forwarding_gre_tunnels.py +++ b/plugins/modules/zia_traffic_forwarding_gre_tunnels.py @@ -102,11 +102,11 @@ ip_unnumbered: true within_country: true primary_dest_vip: - - id: - virtual_ip: + - id: + virtual_ip: secondary_dest_vip: - - id: - virtual_ip: + - id: + virtual_ip: """ RETURN = r""" diff --git a/plugins/modules/zia_traffic_forwarding_static_ip_facts.py b/plugins/modules/zia_traffic_forwarding_static_ip_facts.py index 5d3a4e5..1b10dc1 100644 --- a/plugins/modules/zia_traffic_forwarding_static_ip_facts.py +++ b/plugins/modules/zia_traffic_forwarding_static_ip_facts.py @@ -66,7 +66,6 @@ zscaler.ziacloud.zia_traffic_forwarding_static_ip_facts: provider: '{{ provider }}' id: 82709 - """ RETURN = r""" diff --git a/plugins/modules/zia_traffic_forwarding_vpn_credentials_facts.py b/plugins/modules/zia_traffic_forwarding_vpn_credentials_facts.py index a089fe3..efcc5c3 100644 --- a/plugins/modules/zia_traffic_forwarding_vpn_credentials_facts.py +++ b/plugins/modules/zia_traffic_forwarding_vpn_credentials_facts.py @@ -73,7 +73,6 @@ zscaler.ziacloud.zia_traffic_forwarding_vpn_credentials_facts: provider: '{{ provider }}' id: 222 - """ diff --git a/plugins/modules/zia_url_categories.py b/plugins/modules/zia_url_categories.py index 384e665..c5cd61a 100644 --- a/plugins/modules/zia_url_categories.py +++ b/plugins/modules/zia_url_categories.py @@ -159,23 +159,23 @@ description: Example_Category type: URL_CATEGORY keywords: - - microsoft + - microsoft custom_category: true db_categorized_urls: - - .creditkarma.com - - .youku.com + - .creditkarma.com + - .youku.com urls: - - .coupons.com - - .resource.alaskaair.net - - .techrepublic.com - - .dailymotion.com - - .osiriscomm.com - - .uefa.com - - .Logz.io - - .alexa.com - - .baidu.com - - .cnn.com - - .level3.com + - .coupons.com + - .resource.alaskaair.net + - .techrepublic.com + - .dailymotion.com + - .osiriscomm.com + - .uefa.com + - .Logz.io + - .alexa.com + - .baidu.com + - .cnn.com + - .level3.com """ RETURN = r""" diff --git a/plugins/modules/zia_url_filtering_rules.py b/plugins/modules/zia_url_filtering_rules.py index 3ecab78..fc316e5 100644 --- a/plugins/modules/zia_url_filtering_rules.py +++ b/plugins/modules/zia_url_filtering_rules.py @@ -336,18 +336,18 @@ action: "ALLOW" order: 1 protocols: - - "HTTPS_RULE" - - "HTTP_RULE" + - "HTTPS_RULE" + - "HTTP_RULE" request_methods: - - "CONNECT" - - "DELETE" - - "GET" - - "HEAD" - - "OPTIONS" - - "OTHER" - - "POST" - - "PUT" - - "TRACE" + - "CONNECT" + - "DELETE" + - "GET" + - "HEAD" + - "OPTIONS" + - "OTHER" + - "POST" + - "PUT" + - "TRACE" """ RETURN = r""" diff --git a/tests/integration/targets/zia_forwarding_control_policy/defaults/main.yml b/tests/integration/targets/zia_forwarding_control_policy/defaults/main.yml deleted file mode 100644 index b3ca49c..0000000 --- a/tests/integration/targets/zia_forwarding_control_policy/defaults/main.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -rule_name: test_zia_ansible -description: test_zia_ansible -type: FORWARDING -forward_method: DIRECT -rule_order: 1 -enabled: true -dest_countries: - - BR - - CA - - US -src_ips: - - 192.168.100.0/24 - - 192.168.200.1 -dest_addresses: - - 3.217.228.0-3.217.231.255 - - 3.235.112.0-3.235.119.255 - - 35.80.88.0-35.80.95.255 - - server1.acme.com - - "*.acme.com" -dest_ip_categories: - - BOTNET - - MALWARE_SITE - - PHISHING - - SUSPICIOUS_DESTINATION - -# Cloud Firewall Rule Update -name_update: test_zia_ansible -description_update: test_zia_ansible_update -enabled_update: false -dest_countries_update: - - BR - - CA -src_ips_update: - - 192.168.100.0/24 -dest_addresses_update: - - 3.217.228.0-3.217.231.255 - - 3.235.112.0-3.235.119.255 - - 35.80.88.0-35.80.95.255 -dest_ip_categories_update: - - BOTNET - - MALWARE_SITE - - PHISHING -device_trust_levels_update: - - UNKNOWN_DEVICETRUSTLEVEL - - MEDIUM_TRUST - - HIGH_TRUST diff --git a/tests/integration/targets/zia_forwarding_control_policy/meta/main.yml b/tests/integration/targets/zia_forwarding_control_policy/meta/main.yml deleted file mode 100644 index 23d65c7..0000000 --- a/tests/integration/targets/zia_forwarding_control_policy/meta/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -dependencies: [] diff --git a/tests/integration/targets/zia_forwarding_control_policy/tasks/main.yml b/tests/integration/targets/zia_forwarding_control_policy/tasks/main.yml deleted file mode 100644 index 6b18a70..0000000 --- a/tests/integration/targets/zia_forwarding_control_policy/tasks/main.yml +++ /dev/null @@ -1,209 +0,0 @@ ---- -- name: Include default variables - ansible.builtin.include_vars: - file: ../defaults/main.yml - -- name: Import Random String Generator Tasks - ansible.builtin.import_tasks: ../../../generate_random_string.yml - -- name: Set dynamic name values with random string - ansible.builtin.set_fact: - rule_name: "{{ rule_name }}_{{ random_string }}" - description: "{{ description }}_{{ random_string }}" - description_update: "{{ description_update }}_{{ random_string }}" - -- name: Ensure required environment variables are set - ansible.builtin.fail: - msg: "{{ env_var }} is not defined as environment variable" - when: lookup('env', env_var) is none - loop: - - ZIA_USERNAME - - ZIA_PASSWORD - - ZIA_API_KEY - - ZIA_CLOUD - loop_control: - loop_var: env_var - -- name: Ensure ZIA Credential environment variables are set - ansible.builtin.set_fact: - zia_cloud: - username: "{{ lookup('env', 'ZIA_USERNAME') }}" - password: "{{ lookup('env', 'ZIA_PASSWORD') }}" - api_key: "{{ lookup('env', 'ZIA_API_KEY') }}" - cloud: "{{ lookup('env', 'ZIA_CLOUD') | default(omit) }}" - no_log: true - -- name: Main block for Forwarding Control Rule Configuration - block: - - name: Ensure Forwarding Control Rule (leftover) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: absent - name: "{{ rule_name }}" - order: "{{ rule_order }}" - register: result - - rescue: - - name: Handle errors - ansible.builtin.debug: - msg: An error occurred. - - always: - - name: Cleanup operations - ansible.builtin.debug: - msg: Cleanup complete. - - - name: Ensure Forwarding Control Rule is absent - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: absent - name: "{{ rule_name }}" - order: "{{ rule_order }}" - register: result - - - name: Verify Forwarding Control Rule is absent - ansible.builtin.assert: - that: - - not result.changed - - result.data is defined - - - name: Ensure Forwarding Control Rule is (Present) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: present - name: "{{ rule_name }}" - description: "{{ description }}" - type: "{{ type }}" - forward_method: "{{ forward_method }}" - order: "{{ rule_order }}" - enabled: "{{ enabled }}" - src_ips: "{{ src_ips }}" - dest_countries: "{{ dest_countries }}" - dest_addresses: "{{ dest_addresses }}" - register: result - - - name: Verify Forwarding Control Rule is present - ansible.builtin.assert: - that: - - result.changed - - result.data is defined - - result.data.name is defined - - - name: Ensure Forwarding Control Rule (again; idempotency check) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: present - name: "{{ rule_name }}" - description: "{{ description }}" - type: "{{ type }}" - forward_method: "{{ forward_method }}" - order: "{{ rule_order }}" - enabled: "{{ enabled }}" - src_ips: "{{ src_ips }}" - dest_countries: "{{ dest_countries }}" - dest_addresses: "{{ dest_addresses }}" - register: result - - - name: Ensure Forwarding Control Rule is present (idempotency check) - ansible.builtin.assert: - that: - - not result.changed - - - name: Update Forwarding Control Rule (Present) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: present - name: "{{ rule_name }}" - description: "{{ description_update }}" - type: "{{ type }}" - forward_method: "{{ forward_method }}" - order: "{{ rule_order }}" - enabled: "{{ enabled }}" - src_ips: "{{ src_ips }}" - dest_countries: "{{ dest_countries }}" - dest_addresses: "{{ dest_addresses }}" - register: result - - - name: Verify Forwarding Control Rule is Updated - ansible.builtin.assert: - that: - - result.changed - - result.data is defined - - result.data.name == name - - result.data.description == description_update - - - name: Ensure Forwarding Control Rule is Updated (again; idempotency check) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: present - name: "{{ rule_name }}" - description: "{{ description_update }}" - type: "{{ type }}" - forward_method: "{{ forward_method }}" - order: "{{ rule_order }}" - enabled: "{{ enabled }}" - src_ips: "{{ src_ips }}" - dest_countries: "{{ dest_countries }}" - dest_addresses: "{{ dest_addresses }}" - register: result - - - name: Ensure Forwarding Control Rule update is idempotent - ansible.builtin.assert: - that: - - not result.changed - - - name: Fetch all Forwarding Control Rule - zscaler.ziacloud.zia_forwarding_control_policy_facts: - provider: "{{ zia_cloud }}" - register: result - - - name: Ensure all Forwarding Control Rule found - ansible.builtin.assert: - that: - - not result.changed - - result.data[0] is defined - - - name: Fetch this Forwarding Control Rule - zscaler.ziacloud.zia_forwarding_control_policy_facts: - provider: "{{ zia_cloud }}" - name: "{{ rule_name }}" - register: result - - - name: Ensure this Forwarding Control Rule is found - ansible.builtin.assert: - that: - - not result.changed - - result.data is defined - - result.data[0].name is defined - - result.data[0].name == name - - - name: Give the ZIA Cloud a 5 seconds to settle - ansible.builtin.pause: - seconds: 5 - - - name: Delete Forwarding Control Rule - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: absent - name: "{{ rule_name }}" - order: "{{ rule_order }}" - register: result - - - name: Verify Forwarding Control Rule is Deleted - ansible.builtin.assert: - that: - - result.changed - - - name: Delete Forwarding Control Rule (again; idempotency check) - zscaler.ziacloud.zia_forwarding_control_policy: - provider: "{{ zia_cloud }}" - state: absent - name: "{{ rule_name }}" - order: "{{ rule_order }}" - register: result - - - name: Verify Forwarding Control Rule is absent - ansible.builtin.assert: - that: - - not result.changed - - result.data is defined diff --git a/tests/sanity/ignore-2.13.txt b/tests/sanity/ignore-2.13.txt index 182bc81..5197b46 100644 --- a/tests/sanity/ignore-2.13.txt +++ b/tests/sanity/ignore-2.13.txt @@ -48,7 +48,6 @@ plugins/modules/zia_dlp_web_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_url_filtering_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_url_categories_facts.py validate-modules:missing-gplv3-license -plugins/modules/zia_forwarding_control_policy_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_network_services_groups.py validate-modules:missing-gplv3-license plugins/modules/zia_activation_status.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_time_windows_facts.py validate-modules:missing-gplv3-license diff --git a/tests/sanity/ignore-2.14.txt b/tests/sanity/ignore-2.14.txt index 182bc81..5197b46 100644 --- a/tests/sanity/ignore-2.14.txt +++ b/tests/sanity/ignore-2.14.txt @@ -48,7 +48,6 @@ plugins/modules/zia_dlp_web_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_url_filtering_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_url_categories_facts.py validate-modules:missing-gplv3-license -plugins/modules/zia_forwarding_control_policy_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_network_services_groups.py validate-modules:missing-gplv3-license plugins/modules/zia_activation_status.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_time_windows_facts.py validate-modules:missing-gplv3-license diff --git a/tests/sanity/ignore-2.15.txt b/tests/sanity/ignore-2.15.txt index 182bc81..5197b46 100644 --- a/tests/sanity/ignore-2.15.txt +++ b/tests/sanity/ignore-2.15.txt @@ -48,7 +48,6 @@ plugins/modules/zia_dlp_web_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_url_filtering_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_url_categories_facts.py validate-modules:missing-gplv3-license -plugins/modules/zia_forwarding_control_policy_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_network_services_groups.py validate-modules:missing-gplv3-license plugins/modules/zia_activation_status.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_time_windows_facts.py validate-modules:missing-gplv3-license diff --git a/tests/sanity/ignore-2.16.txt b/tests/sanity/ignore-2.16.txt index 182bc81..5197b46 100644 --- a/tests/sanity/ignore-2.16.txt +++ b/tests/sanity/ignore-2.16.txt @@ -48,7 +48,6 @@ plugins/modules/zia_dlp_web_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_traffic_forwarding_gre_tunnel_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_url_filtering_rules.py validate-modules:missing-gplv3-license plugins/modules/zia_url_categories_facts.py validate-modules:missing-gplv3-license -plugins/modules/zia_forwarding_control_policy_facts.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_network_services_groups.py validate-modules:missing-gplv3-license plugins/modules/zia_activation_status.py validate-modules:missing-gplv3-license plugins/modules/zia_cloud_firewall_time_windows_facts.py validate-modules:missing-gplv3-license